我需要一个列表所有可能的(1,2 .... x)字母组合,其中x是数字。
所以对于2个字母的单词,使用list,我会这样做:
[x+y for x in ascii_letters for y in ascii_letters]
对于3个字母的单词,我会这样做:
[x+y+z for x in ascii_letters for y in ascii_letters for z in ascii_letters]
等等。
很明显我遇到了静态重复的代码。有没有一种通用的方法来编写这个使用列表理解,映射或任何其他方法,我可以提供多个字母作为参数而不重复代码。
答案 0 :(得分:2)
Itertools包含构建此类程序所需的大部分组件。特别是,请查看itertools.product
。例如,要重复n
次,请执行itertools.product(thing, repeat=n)