可能重复:
Python code to pick out all possible combinations from a list?
我有一个清单[1,2,3]。我想找到所有的组合
C(3,1)
[1] [2] [3]
C(3,2)
[1,2] [2,3] [1,3]
C(3,3)
[1,2,3]
是否有一些模块/库可以做到这一点?
答案 0 :(得分:5)
>>> import itertools
>>> list(itertools.combinations([1,2,3], 1))
[(1,), (2,), (3,)]
>>> list(itertools.combinations([1,2,3], 2))
[(1, 2), (1, 3), (2, 3)]
>>> list(itertools.combinations([1,2,3], 3))
[(1, 2, 3)]
或通常适用于您的C
:
def C(a, b):
return list(itertools.combinations(range(1,a+1), b))
答案 1 :(得分:1)
看看itertools库:http://docs.python.org/library/itertools.html