列表的排列-Python

列表的排列-Python,python,Python,给定一个包含n个字母的列表,如['a','b','c',],输出不同的组合。对于本例,输出将是['abc'、'acb'、'bac'、'bca'、'cab'、'cba']。虽然我已经解决了这个问题,但不幸的是它效率很低,当元素的数量稍大一些时,比如10个,代码就不能处理内存错误。有人有快速有效的算法来解决这个问题吗?这些是排列,而不是组合 itertools具备您所需的功能: from itertools import permutations [''.join(perm) for perm i

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

这些是排列,而不是组合

itertools具备您所需的功能:

from itertools import permutations

[''.join(perm) for perm in permutations(li)]
的文档还有一些食谱