Python:3个元素的排列

时间:2014-03-19 23:46:45

标签: python list combinations permutation

如何在Python中找到包含3个元素的列表的所有排列?

例如,输入

[1, 2, 3, 4]

将返回

[1, 2, 3]
[1, 2, 4]
[1, 3, 4]
[2, 3, 4]

谢谢!

1 个答案:

答案 0 :(得分:6)

您想使用itertools.combinationslist comprehension

>>> from itertools import combinations
>>> lst = [1, 2, 3, 4]
>>> [list(x) for x in combinations(lst, 3)]
[[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]]
>>>

关于您的评论,您可以通过添加str.joinmap *来制作字符串列表:

>>> from itertools import combinations
>>> lst = [1, 2, 3, 4]
>>> [''.join(map(str, x)) for x in combinations(lst, 3)]
['123', '124', '134', '234']
>>>

* 注意:您需要执行map(str, x)因为str.join需要可迭代的字符串。