【发布时间】:2011-11-25 19:29:10
【问题描述】:
可能重复:
is there any best way to generate all possible three letters keywords
如何从字母 L 中枚举所有长度为 K 的字符串,其中 L 只是一个字符列表?例如。如果L = ['A', 'B', 'C'] 和K = 2,我想枚举所有可能的长度为2 的字符串,这些字符串可以由字母'A'、'B'、'C' 组成。它们可以重复使用,所以'AA' 是有效的。
据我所知,这本质上是带有替换的排列。如果有更正确的技术术语,请告诉我....它基本上所有长度为 K 的字符串,您可以通过从字母 L 中选择任何字母并可能重用字母,以一种对顺序(因此 AB 与 BA 不完全相同。)是否有更清晰的方式来说明这一点?
无论如何,我认为解决方案是:
[ ''.join(x) for x in product(L, repeat=K) ]
但我对这个问题的其他答案很感兴趣,尤其是。幼稚的方法与快速的 Pythonic 方法,以及速度考虑因素的讨论。
【问题讨论】:
-
请写一些代码和/或具体告诉我们您在尝试这样做时遇到了什么问题。
-
你可以使用递归来做到这一点。
-
我同意这是重复的,很抱歉错过了它。仍然想知道递归方式来做到这一点,因为在其他线程中没有详细提到
-
您的编辑使这个问题成为讨论/投票问题——它不再有特定的正确答案,甚至没有特定的问题(“我对……感兴趣”)。这不是本网站的主题。
标签: python combinatorics