如何列出所有可能的排列?

How to make a list of all possible permutations?

是否有一个函数可以生成列表列表的所有排列,同时保持它们的顺序?

例如:

func([[1, 2, 3], [10, 20, 30]])

产生:

[[1, 10], [1, 20], [1, 30], [2, 10], [2, 20], [2, 30], [3, 10], [3, 20], [3, 30]]

itertools 模块中有一个 product 函数,它就是这样做的:

from itertools import product

lst = [[1, 2, 3], [10, 20, 30]]
res = [list(i) for i in product(*lst)]
print(res)

因为你希望里面的项目也是列表,所以我使用list(i)product给出的元组转换为列表。

输出:

[[1, 10], [1, 20], [1, 30], [2, 10], [2, 20], [2, 30], [3, 10], [3, 20], [3, 30]]