给出N = [10,7,6,5,4,3,2,1]
和PooledMoney=23
我需要打印如下所示的所有列表
[10,7,6]
[10,7,5,1]
[10,7,3,2,1]
[10,6,5,2]
[7,6,5,3,2]
这是我的尝试:
for L in range(0,len(N)+1):
for subset in itertools.combinations(N,L):
#print subset
for i in subset:
sum = sum + i
if(sum==PooledMoney):
print subset`
这不会打印正确的子集。
答案 0 :(得分:0)
你非常接近:
import itertools
l = [1,2,3,4,5,6]
ts = 8
def psl(l, ts):
for i in range(len(l)):
for c in itertools.combinations(l, i):
if sum(c) == ts:
print list(c)
psl(l, ts)