【发布时间】:2015-12-11 19:06:18
【问题描述】:
我正在寻找一种简单的方法来解决这个问题。 假设我有一个列表列表,其中列表中的列表数量不确定:
lists = [
[[1,2,3,4],[2,3,4,5]],
[[1,2,3,4],[2,3,4,5],[3,4,5,6]],
[[1,2,3,4]],
[[1,2,3,4],[2,3,4,5]]
]
我现在想不通的是生成所有可能组合的排列,同时保持lists 的第一级以相同的顺序。我弄乱了嵌套的for 循环和any() 函数,但收效甚微。嵌套的 for 循环不起作用,因为实际上,len(lists) 要大得多,并且会占用 len(lists) 数量的 for 循环。有人有什么想法吗?
在上面的例子中,一些可能的排列是:
[[1,2,3,4],
[1,2,3,4],
[1,2,3,4],
[1,2,3,4]]
[[1,2,3,4],
[1,2,3,4],
[1,2,3,4],
[2,3,4,5]]
[[2,3,4,5],
[1,2,3,4],
[1,2,3,4],
[2,3,4,5]]
[[2,3,4,5],
[3,4,5,6],
[1,2,3,4],
[2,3,4,5]]
【问题讨论】:
-
那些在我看来不像排列;顺序似乎没有改变。它看起来更像是您想要使用笛卡尔积,在这种情况下,这是许多
itertools.product问题的重复。 -
@DSM 你是绝对正确的。由于我的物理背景,这尤其令人尴尬。谢谢!
标签: python list permutation