查找列表元素的组合

时间:2012-03-27 14:46:45

标签: python

  

可能重复:
  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]

是否有一些模块/库可以做到这一点?

2 个答案:

答案 0 :(得分:5)

您可以使用itertools.combinations

>>> 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)