python多个列表之间排列组合

目标:给定多个列表,返回列表之间所有可能的排列组合
如给定:

a = [1,2]
b = [4,5]
c = [6,7]
d = [8,9]

期望输出上述多个列表所有可能的排列组合(2 * 2 * 2 * 2 = 16种):

(1, 4, 6, 8)
(1, 4, 6, 9)
(1, 4, 7, 8)
(1, 4, 7, 9)
(1, 5, 6, 8)
(1, 5, 6, 9)
(1, 5, 7, 8)
(1, 5, 7, 9)
(2, 4, 6, 8)
(2, 4, 6, 9)
(2, 4, 7, 8)
(2, 4, 7, 9)
(2, 5, 6, 8)
(2, 5, 6, 9)
(2, 5, 7, 8)
(2, 5, 7, 9)

实现代码如下:

from itertools import product
loop_val = [a,b,c,d]
for i in product(*loop_val):
    print(i)

添加 * 是为了先将loop_val 进行解压,后进行排列组合,不加 * 输出结果为:

([1, 2],)
([4, 5],)
([6, 7],)
([8, 9],)

版权声明:本文为w771792694原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。