Python:从每个列表中选择一个项目但是尽可能组合

581*_*813 5 python list python-itertools sublist

我希望有一个itertools功能,但我找不到一个.我希望Python从列表的每个子列表中选择一个项目,并维护顺序,与它们进行各种可能的组合.例如,希望如此

x = [[1,2,3],[1,2,3,4],[1,2,3,4,5]]
Run Code Online (Sandbox Code Playgroud)

可能成为

[[1,1,1],[1,1,2],[1,1,3],[1,1,4],[1,1,5],[1,2,1]...]
Run Code Online (Sandbox Code Playgroud)

并且此输出将包括每个子列表中的一个项目,因此[5,5,5]和[4,4,5]都不会包含在其中.此外,由于秩序很重要,而[3,4,5]可能在输出中,[5,4,3]不能.但是,当然,该方法应适用于原始列表中的所有数字和任何数字.

谢谢!

tac*_*ell 9

我想你想要的 itertools.product

[p for p in itertools.product(*x)]
Run Code Online (Sandbox Code Playgroud)