如何计算集合中所有可能的元素组合的和?(Python)



例如,我有列表L = [1,2,4]。为了便于理解,我想列出两次拉出和一次放回的所有组合(顺序无关):

[1,1]
[1,2]
[2,2]
[1,4]
[2,4]

则各自列表的和为:[2,3,4,5,6]。

所以我想用一个函数从输入[1,2,4]得到输出[2,3,4,5,6],可以这么说。在一般情况下,这个列表有k个元素,组合需要取N个元素。说:

def fun(L,N):
... 
(do the thing)
return sum_list

类似下面

L = [1, 2, 4]
k = []
for i in range(len(L)):
for j in range(len(L)-i):
k.append(L[j+i] + L[i])

最新更新