关于python:查找列表元素的组合

Finding combination of elements of a list

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Python code to pick out all possible combinations from a list?

我有一张单子,上面写着[1,2,3]。我想找到所有的组合

1
2
3
4
5
6
7
8
C(3,1)
[1] [2] [3]

C(3,2)
[1,2] [2,3] [1,3]

C(3,3)
[1,2,3]

是否有一些模块/库用于执行此操作?


您可以使用itertools.combinations。

1
2
3
4
5
6
7
8
9
10
>>> 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

1
2
def C(a, b):
    return list(itertools.combinations(range(1,a+1), b))


看看itertools库:http://docs.python.org/library/itertools.html