-1

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

4

1 回答 1

2

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

itertools有你需要的:

from itertools import permutations

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

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

于 2013-11-14T02:03:09.417 回答