【发布时间】:2012-04-11 02:55:50
【问题描述】:
可能重复:
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]
是否有一些模块/库可以做到这一点?
【问题讨论】:
标签: 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]
是否有一些模块/库可以做到这一点?
【问题讨论】:
标签: python
>>> 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))
【讨论】:
看看 itertools 库:http://docs.python.org/library/itertools.html
【讨论】: