Python中是否有一个函数可以生成给定字母表中所有长度为n的字符串?

sna*_*ile 11 python string algorithm

我需要一个函数generateAllStrings(n, alphabet)来做这样的事情:

generateAllStrings(4, ['a','b'])
>>> ["aaaa", "aaab", "aaba", "aabb", "abaa", .... , "bbba", "bbbb"]
Run Code Online (Sandbox Code Playgroud)

换句话说,generateAllStrings(n, alphabet)应该在列表字母表中的字符上返回长度为n的所有可能的字符串.

在itertools中有这样的功能吗?

Kab*_*bie 38

>>> [''.join(i) for i in itertools.product("ab",repeat=4)]
['aaaa', 'aaab', 'aaba', 'aabb', 'abaa', 'abab', 'abba', 'abbb', 'baaa', 'baab', 'baba', 'babb', 'bbaa', 'bbab', 'bbba', 'bbbb']
Run Code Online (Sandbox Code Playgroud)

  • 美丽:瞬间+1.稍加补充:使用括号将返回一个可互换而不是完整的预生成列表,而不是列表推导的括号. (13认同)