ish*_*243 0 python permutation
我有一个类似的python列表[[1 2 3] [4 5] [3] [1]],我想生成所有可能的排列.输出应该是这样的
[[1 4 3 1] [1 5 3 1] [2 4 3 1] [2 5 3 1] [3 4 3 1] [3 5 3 1]]
我想到了循环,但嵌套循环的数量会根据输入而变化.有人可以建议一个好的算法吗?
你想要的是一个carthesian产品.itertools 有一个功能product,完全相同:
import itertools
a = [[1, 2, 3], [4, 5], [3], [1]]
p = itertools.product(*a)
print list(p)
Run Code Online (Sandbox Code Playgroud)
这输出
[(1, 4, 3, 1),
(1, 5, 3, 1),
(2, 4, 3, 1),
(2, 5, 3, 1),
(3, 4, 3, 1),
(3, 5, 3, 1)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |