将列表中的所有元素相乘(另一个列表索引超出范围问题)

Mar*_*bik 9 python python-2.7

在我正在编写的程序中,我需要将列表中的每个元素与所有其他元素相乘,如下所示:

List = [i1, i2, i3]

Result = [i1*i2, i1*i3, i2*i3]
Run Code Online (Sandbox Code Playgroud)

我一直在搞乱循环一段时间,但我似乎无法让它工作.这是我到目前为止(不起作用,我知道为什么它不起作用,只是征求意见):

def function():
    for j in range(len(list)):
        n = j+1
        for i in range(len(list)):

            if n+i > len(list):
                n -= 1
            x = factor[j] * factor[j+i]

            result.append(x)
    return
Run Code Online (Sandbox Code Playgroud)

FMc*_*FMc 24

from itertools import combinations

xs = [1, 2, 3]
products = [x1 * x2 for x1, x2 in combinations(xs, 2)]
Run Code Online (Sandbox Code Playgroud)


ADR*_*ADR 4

input_list = [1, 2, 3, 4]
result_list = []

for i in range(len(input_list)):
    for j in range(i + 1, len(input_list)):
        result_list.append(input_list[i] * input_list[j])

print(result_list)
Run Code Online (Sandbox Code Playgroud)

结果:

[2, 3, 4, 6, 8, 12]
Run Code Online (Sandbox Code Playgroud)