列表的排列 - Python

时间:2013-11-14 01:58:11

标签: python

给定一个包含n个字母的列表,如['a','b','c'],输出不同的组合。对于此示例,输出将为['abc','acb','bac','bca','cab','cba']。虽然我已经解决了这个问题,但遗憾的是效率非常低,当元素数量稍微大一些时,如10,代码不能解决内存错误。有没有人有快速有效的算法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

这些是排列,而不是组合。

itertools有你需要的东西:

from itertools import permutations

[''.join(perm) for perm in permutations(li)]

itertools.permutations的文档还有一些食谱。