Oct-22-2018, 08:49 PM
use a list:
import itertools max_digit = 9 # initialize counts list to 0 counts = [0] * (max_digit +1) thelist = [0, 0, 0, 1, 1, 2, 2, 1] for L in range(5,6): for subset in itertools.combinations(thelist, L): sum_subset = sum(subset) print(f"{subset} => {sum_subset}") counts[sum_subset] += 1 print('\nCount of sums:') for n in range(max_digit + 1): print(f"sum of {n}'s' is {counts[n]}")result:
Output:(0, 0, 0, 1, 1) => 2
(0, 0, 0, 1, 2) => 3
(0, 0, 0, 1, 2) => 3
(0, 0, 0, 1, 1) => 2
(0, 0, 0, 1, 2) => 3
(0, 0, 0, 1, 2) => 3
(0, 0, 0, 1, 1) => 2
(0, 0, 0, 2, 2) => 4
(0, 0, 0, 2, 1) => 3
(0, 0, 0, 2, 1) => 3
(0, 0, 1, 1, 2) => 4
(0, 0, 1, 1, 2) => 4
(0, 0, 1, 1, 1) => 3
(0, 0, 1, 2, 2) => 5
(0, 0, 1, 2, 1) => 4
(0, 0, 1, 2, 1) => 4
(0, 0, 1, 2, 2) => 5
(0, 0, 1, 2, 1) => 4
(0, 0, 1, 2, 1) => 4
(0, 0, 2, 2, 1) => 5
(0, 0, 1, 1, 2) => 4
(0, 0, 1, 1, 2) => 4
(0, 0, 1, 1, 1) => 3
(0, 0, 1, 2, 2) => 5
(0, 0, 1, 2, 1) => 4
(0, 0, 1, 2, 1) => 4
(0, 0, 1, 2, 2) => 5
(0, 0, 1, 2, 1) => 4
(0, 0, 1, 2, 1) => 4
(0, 0, 2, 2, 1) => 5
(0, 1, 1, 2, 2) => 6
(0, 1, 1, 2, 1) => 5
(0, 1, 1, 2, 1) => 5
(0, 1, 2, 2, 1) => 6
(0, 1, 2, 2, 1) => 6
(0, 0, 1, 1, 2) => 4
(0, 0, 1, 1, 2) => 4
(0, 0, 1, 1, 1) => 3
(0, 0, 1, 2, 2) => 5
(0, 0, 1, 2, 1) => 4
(0, 0, 1, 2, 1) => 4
(0, 0, 1, 2, 2) => 5
(0, 0, 1, 2, 1) => 4
(0, 0, 1, 2, 1) => 4
(0, 0, 2, 2, 1) => 5
(0, 1, 1, 2, 2) => 6
(0, 1, 1, 2, 1) => 5
(0, 1, 1, 2, 1) => 5
(0, 1, 2, 2, 1) => 6
(0, 1, 2, 2, 1) => 6
(0, 1, 1, 2, 2) => 6
(0, 1, 1, 2, 1) => 5
(0, 1, 1, 2, 1) => 5
(0, 1, 2, 2, 1) => 6
(0, 1, 2, 2, 1) => 6
(1, 1, 2, 2, 1) => 7
Count of sums:
sum of 0's' is 0
sum of 1's' is 0
sum of 2's' is 3
sum of 3's' is 9
sum of 4's' is 19
sum of 5's' is 15
sum of 6's' is 9
sum of 7's' is 1
sum of 8's' is 0
sum of 9's' is 0