计算python中的组合

时间:2013-03-15 09:44:25

标签: python count combinations set

我一直在困惑几个小时如何为这个问题制作程序。我搜索了类似的解决方案,但我没有成功。

共有6组2个值a [a1,a2] ; b [b1, b2] ; ... f [f1, f2].

每个组合都需要每组至少有一个值,但它也可以同时拥有两个值。因此,有64种组合。

我需要的是计算所有这些组合,然后打印出类似的内容:

Combination 1: a1, b1, c1, d1, e1, f1 Sum:  (sum of those listed)

Combination 2: ...

Total sum:

1 个答案:

答案 0 :(得分:2)

>>> from itertools import product   
>>> for item in product(['a1', 'a2'], ['b1', 'b2'], ['c1', 'c2']):
...     print item
...     
('a1', 'b1', 'c1')
('a1', 'b1', 'c2')
('a1', 'b2', 'c1')
('a1', 'b2', 'c2')
('a2', 'b1', 'c1')
('a2', 'b1', 'c2')
('a2', 'b2', 'c1')
('a2', 'b2', 'c2')

看起来你的a1,a2等是数字的。那太好了

>>> from itertools import product
>>> for item in product([1, 2], [3, 4], [5, 6]):
...     print item, sum(item)
... 
(1, 3, 5) 9
(1, 3, 6) 10
(1, 4, 5) 10
(1, 4, 6) 11
(2, 3, 5) 10
(2, 3, 6) 11
(2, 4, 5) 11
(2, 4, 6) 12