代码之家  ›  专栏  ›  技术社区  ›  AzureMinotaur

从n个整数列表(可能长度不等)中进行所有可能的n个长度排列[重复]

  •  2
  • AzureMinotaur  · 技术社区  · 9 年前

    例子:

    list1 = [0,1,2]
    list2 = [0,1]
    list3 = [0,1,2,3]
    

    那么排列将是:

    0,0,0
    0,0,1
    0,0,2
    0,0,3
    0,1,0
    0,1,1
    0,1,2
    0,1,3
    1,0,0
    1,0,1
    1,0,2
    1,0,3
    1,1,0
    1,1,1
    1,1,2
    1,1,3
    

    …等等,具有3 x 2 x 4=24个排列。

    列表的数量不一定是3(它们可以是任何数量,n),顺序很重要,因此0,0,1与0,1,0不同。

    我知道我可能不得不以某种方式使用itertools,但不确定如何实现这一点。我不能只做三个嵌套循环,因为列表的数量不同。

    这是 this question ,但列表的数量各不相同,顺序也很重要。

    我感谢任何帮助或提示。谢谢

    1 回复  |  直到 7 年前
        1
  •  3
  •   Soronbe    9 年前
    list1 = [0,1,2]
    list2 = [0,1]
    list3 = [0,1,2,3]
    listOfLists = [list1,list2,list3]
    for list in itertools.product(*listOfLists):
        print(list)