生成单词的Python脚本

1 投票
2 回答
2504 浏览
提问于 2025-04-16 15:32

我想写一个简单的脚本,帮助我生成所有可能的字母组合,具体的参数我可以自己设定。

举个例子:

__ _ _ n o

参数设置:

单词长度 = 5 个字母

第4个和第5个字母 = n, o

第1个字母 = 任何元音字母(aeiouy)

第2个和第3个字母 = 任何字母(abcde...)

换句话说,我想写一个脚本,能给我返回所有 26*26*6 的结果。即使这些组合不是实际的单词(比如“zzzno”也可以)。然后我还想把这个脚本做得更通用,这样我就可以用任何参数来生成组合。谢谢。

2 个回答

1

如果你有一个单词列表,其实你根本不需要写代码,你可以直接使用grep这个工具:

$ grep '^[aeiouy][a-z][a-z]no$' /usr/share/dict/words
amino
imino
5
import itertools
import string

letter = string.lowercase
vowel  = "aeiouy"

def all_words(*args):
    return (''.join(letters) for letters in itertools.product(*args))

wordlist = list(all_words(vowel, letter, letter, "n", "o"))
['aaano', 'aabno', 'aacno', 'aadno', 'aaeno', 'aafno' ... ]

返回了4056条记录:

撰写回答