项在python FOR循环中是变量

项在python FOR循环中是变量,python,for-loop,Python,For Loop,我正试图找到一种更有效的方法来用python编写下面的代码。实际上,我想自动创建一个列表,其中包含另一个列表的所有可能组合 因此,对于我下面的示例,将创建a.a.a、a.a.b、a.a.c。。。。。c、 c.c 不过,我想做的是扩大组合列表的规模,即增加到a、b、c和d。目前需要在下面的FOR语句中添加另一个FOR语句,以便能够运行第四个组合 是否还可以根据组合列表中的项目数使FOR语句的项目列表也变为变量(类似于我如何使expression list变为变量) (我已经看过了,但无法确定我们是

我正试图找到一种更有效的方法来用python编写下面的代码。实际上,我想自动创建一个列表,其中包含另一个列表的所有可能组合

因此,对于我下面的示例,将创建a.a.a、a.a.b、a.a.c。。。。。c、 c.c

不过,我想做的是扩大组合列表的规模,即增加到a、b、c和d。目前需要在下面的FOR语句中添加另一个FOR语句,以便能够运行第四个组合

是否还可以根据组合列表中的项目数使FOR语句的项目列表也变为变量(类似于我如何使expression list变为变量)

(我已经看过了,但无法确定我们是否正在尝试做同样的事情,而我的其他搜索只找到了关于如何生成iterable变量的问题)


我相信你在找我

e、 g

导入itertools
项目=['A','B','C','D']
列表(itertools.带替换项的组合(项目、透镜(项目)))
或者可能是上文@andrepd建议的产品

list(itertools.product(items, repeat=len(items)))

这取决于您希望在输出中使用CBA之类的内容,还是只使用严格排序的ABC。

这是
itertools.product()


将产生aaa,aab,aac,aba,abb,…,ccb,ccc

看看python itertools模块化的指针和下面的响应。严格地说,它会产生
('a','a','a')
('a','a','b')
,等等。这与OP的循环结构建议的不太一样,因为它会将同一个三元组的置换视为等价的,并且只产生其中一个。
list(itertools.product(items, repeat=len(items)))
import itertools

print(itertools.product('abc', repeat=3))