agn*_*aft 1 python algorithm permutation data-structures
在组合列表中的列表时,我迫切需要一些算法帮助.假设我有以下数据结构:
fields = [ ['a1', 'a2', 'a3'], ['b1', 'b2', 'b3'], ['c1', 'c2', 'c3'], ['d1', 'd2', 'd3'] ]
我正在尝试编写一个生成器(Python),它将产生每个可能的项目组合,以便以下代码:
for x in thegenerator(fields): print(x)
会给出以下输出:
['a1', 'b1', 'c1', 'd1'] ['a1', 'b1', 'c1', 'd2'] ['a1', 'b1', 'c1', 'd3'] ['a1', 'b1', 'c2', 'd1'] ['a1', 'b1', 'c2', 'd2'] ['a1', 'b1', 'c2', 'd3'] ... ['a3', 'b3', 'c3', 'd3']
然而,我的思维方式今天完全没有了,所以我无法想象我最好如何迭代结构以使用Python以最干净的方式获得所有组合.我确信这是以前由某人完成的,但是在谷歌和堆栈上进行了一些搜索后,我放弃了找到正确的关键字组合,以找到适合此问题的算法.
有什么想法解决这个最干净的算法是什么?