生成单词的Python脚本
我想写一个简单的脚本,帮助我生成所有可能的字母组合,具体的参数我可以自己设定。
举个例子:
__ _ _ 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条记录: