How to sum each combination of X numbers from a list of a range of N numbers in Python

1 Answer

0 votes
from itertools import combinations 
   
lst = list(range(1, 11))
X = 5
comb = combinations(lst, X) 
 
for ol in list(comb):
    sum = 0
    for n in ol:
       sum += n
       print(n, end=" ")
    print("sum =", sum)
 
 
 
'''
run:
 
2 4 7 8 10 sum = 31
2 4 7 9 10 sum = 32
2 4 8 9 10 sum = 33
2 5 6 7 8 sum = 28
2 5 6 7 9 sum = 29
2 5 6 7 10 sum = 30
2 5 6 8 9 sum = 30
2 5 6 8 10 sum = 31
2 5 6 9 10 sum = 32
2 5 7 8 9 sum = 31
2 5 7 8 10 sum = 32
2 5 7 9 10 sum = 33
2 5 8 9 10 sum = 34
2 6 7 8 9 sum = 32
2 6 7 8 10 sum = 33
2 6 7 9 10 sum = 34
2 6 8 9 10 sum = 35
2 7 8 9 10 sum = 36
3 4 5 6 7 sum = 25
3 4 5 6 8 sum = 26
3 4 5 6 9 sum = 27
3 4 5 6 10 sum = 28
3 4 5 7 8 sum = 27
3 4 5 7 9 sum = 28
3 4 5 7 10 sum = 29
3 4 5 8 9 sum = 29
3 4 5 8 10 sum = 30
3 4 5 9 10 sum = 31
3 4 6 7 8 sum = 28
3 4 6 7 9 sum = 29
3 4 6 7 10 sum = 30
3 4 6 8 9 sum = 30
3 4 6 8 10 sum = 31
3 4 6 9 10 sum = 32
3 4 7 8 9 sum = 31
3 4 7 8 10 sum = 32
3 4 7 9 10 sum = 33
3 4 8 9 10 sum = 34
3 5 6 7 8 sum = 29
3 5 6 7 9 sum = 30
3 5 6 7 10 sum = 31
3 5 6 8 9 sum = 31
3 5 6 8 10 sum = 32
3 5 6 9 10 sum = 33
3 5 7 8 9 sum = 32
3 5 7 8 10 sum = 33
3 5 7 9 10 sum = 34
3 5 8 9 10 sum = 35
3 6 7 8 9 sum = 33
3 6 7 8 10 sum = 34
3 6 7 9 10 sum = 35
3 6 8 9 10 sum = 36
3 7 8 9 10 sum = 37
4 5 6 7 8 sum = 30
4 5 6 7 9 sum = 31
4 5 6 7 10 sum = 32
4 5 6 8 9 sum = 32
4 5 6 8 10 sum = 33
4 5 6 9 10 sum = 34
4 5 7 8 9 sum = 33
4 5 7 8 10 sum = 34
4 5 7 9 10 sum = 35
4 5 8 9 10 sum = 36
4 6 7 8 9 sum = 34
4 6 7 8 10 sum = 35
4 6 7 9 10 sum = 36
4 6 8 9 10 sum = 37
4 7 8 9 10 sum = 38
5 6 7 8 9 sum = 35
5 6 7 8 10 sum = 36
5 6 7 9 10 sum = 37
5 6 8 9 10 sum = 38
5 7 8 9 10 sum = 39
6 7 8 9 10 sum = 40
 
'''

 



answered Dec 8, 2019 by avibootz
...