如何生成列表的所有排列?例如:
permutations([])
[]
permutations([1])
[1]
permutations([1, 2])
[1, 2]
[2, 1]
permutations([1, 2, 3])
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
原文由 Ricardo Reyes 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何生成列表的所有排列?例如:
permutations([])
[]
permutations([1])
[1]
permutations([1, 2])
[1, 2]
[2, 1]
permutations([1, 2, 3])
[1, 2, 3]
[1, 3, 2]
[2, 1, 3]
[2, 3, 1]
[3, 1, 2]
[3, 2, 1]
原文由 Ricardo Reyes 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于 Python 2.6 及 更高版本:
import itertools
itertools.permutations([1, 2, 3])
这作为生成器返回。使用 list(permutations(xs))
作为列表返回。
原文由 Brian 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
使用 标准库 中的
itertools.permutations
:改编自 这里 是如何实现
itertools.permutations
的演示:itertools.permutations
的文档中列出了几种替代方法。这是一个:另一个,基于
itertools.product
: