给定一个包含 n 个字母的列表,比如['a','b','c']
,输出不同的组合。对于此示例,输出将是['abc','acb','bac','bca','cab','cba']
. 虽然我已经解决了这个问题,但不幸的是它的效率很低,当元素的数量有点大时,比如 10,代码不起作用,内存错误。有没有人有一个快速有效的算法来解决这个问题?
问问题
87 次
1 回答
2
这些是排列,而不是组合。
itertools
有你需要的:
from itertools import permutations
[''.join(perm) for perm in permutations(li)]
的文档itertools.permutations
还有一些食谱。
于 2013-11-14T02:03:09.417 回答