【问题标题】:Is there a function in Python which generates all the strings of length n over a given alphabet?Python中是否有一个函数可以在给定的字母表上生成所有长度为n的字符串?
【发布时间】:2011-02-28 20:18:16
【问题描述】:

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

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

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

在itertools什么的有这样的功能吗?

【问题讨论】:

    标签: python algorithm string


    【解决方案1】:
    >>> [''.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']
    

    【讨论】:

    • 我比我的回答更喜欢这个=)
    • 美丽:即时+1。一个小小的补充:代替括号来理解列表,使用括号将返回一个可交互的而不是一个完整的预生成列表。
    • +1 表示解决方案,+1 表示 Santiago 表示可迭代的评论 --> 懒惰是美丽的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 2019-05-19
    相关资源
    最近更新 更多