Python 打印所有配置列表

Python 打印所有配置列表,python,Python,我有10个变量x1到x10,每个变量的可能值的数量大小在1到256之间 x1 = [1,10,20,23,12] x2 = ['string0','string1','string3'] 我需要生成所有可能的配置 1, string0,..... <till x10 value> 1, string1 1, string3 ...... 12, string0 12, string1 12, string3 输出不会打印超过三个或四个for循环。是否有更好的方法将所有可能的配置打

我有10个变量x1到x10,每个变量的可能值的数量大小在1到256之间

x1 = [1,10,20,23,12]
x2 = ['string0','string1','string3']
我需要生成所有可能的配置

1, string0,..... <till x10 value>
1, string1
1, string3
......
12, string0
12, string1
12, string3

输出不会打印超过三个或四个for循环。是否有更好的方法将所有可能的配置打印到文件中?

使用
itertools
模块中的
product
方法:

>>> import itertools as it
>>> x1 = [1,10,20,23,12]
>>> x2 = ['string0','string1','string3']
>>> list(it.product(x1, x2))

[(1, 'string0'),
 (1, 'string1'),
 (1, 'string3'),
 (10, 'string0'),
 (10, 'string1'),
 (10, 'string3'),
 (20, 'string0'),
 (20, 'string1'),
 (20, 'string3'),
 (23, 'string0'),
 (23, 'string1'),
 (23, 'string3'),
 (12, 'string0'),
 (12, 'string1'),
 (12, 'string3')]

使用
itertools
模块中的
product
方法:

>>> import itertools as it
>>> x1 = [1,10,20,23,12]
>>> x2 = ['string0','string1','string3']
>>> list(it.product(x1, x2))

[(1, 'string0'),
 (1, 'string1'),
 (1, 'string3'),
 (10, 'string0'),
 (10, 'string1'),
 (10, 'string3'),
 (20, 'string0'),
 (20, 'string1'),
 (20, 'string3'),
 (23, 'string0'),
 (23, 'string1'),
 (23, 'string3'),
 (12, 'string0'),
 (12, 'string1'),
 (12, 'string3')]

仅仅是一个列表理解,在列表
x1
x2
上迭代就足够了

>>> from pprint import pprint
>>> res = [(a,b) for a in x1 for b in x2]
>>> pprint(res)
[(1, 'string0'),
 (1, 'string1'),
 (1, 'string3'),
 (10, 'string0'),
 (10, 'string1'),
 (10, 'string3'),
 (20, 'string0'),
 (20, 'string1'),
 (20, 'string3'),
 (23, 'string0'),
 (23, 'string1'),
 (23, 'string3'),
 (12, 'string0'),
 (12, 'string1'),
 (12, 'string3')]

仅仅是一个列表理解,在列表
x1
x2
上迭代就足够了

>>> from pprint import pprint
>>> res = [(a,b) for a in x1 for b in x2]
>>> pprint(res)
[(1, 'string0'),
 (1, 'string1'),
 (1, 'string3'),
 (10, 'string0'),
 (10, 'string1'),
 (10, 'string3'),
 (20, 'string0'),
 (20, 'string1'),
 (20, 'string3'),
 (23, 'string0'),
 (23, 'string1'),
 (23, 'string3'),
 (12, 'string0'),
 (12, 'string1'),
 (12, 'string3')]

这本身并不能很好地扩展到10个列表的集合。问题给出了两个列表作为示例,但实际问题包含
x1
x10
。这本身并不能很好地扩展到10个列表的集合。问题给出了两个列表作为示例,但实际问题包含
x1
x10