2015-08-07 3 views
-7

Учитывая список, как 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` 

Это не печатает правильные подмножества.

+2

Разместить свои попытки. –

+2

OK! Каков твой вопрос? – jonrsharpe

+0

Я обновил вопрос своей попыткой – Gokul1794

ответ

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) 
Смежные вопросы