python从字母表列表中获取所有可能的单词

时间:2015-12-14 10:23:52

标签: python

假设我的文本文件alphabets.txt

中有一些字母和数字
A B E G L I P c e f u y 2 8 9 6

我想打开这个文件,我可以从

开始
f = open("/home/someuser/Documents/alphabets.txt")
for word in f.read().split():
    print(word)

但是我希望从这些字母表中打印出随机单词。

我希望每个字母表中包含8个字符的单词。像排列组合一样

任何单词都不应该从组合中留下,不应该重复。 我怎么能这样做?

提前致谢

1 个答案:

答案 0 :(得分:1)

使用 rzeczownik - (1.1) zestaw rzeczownik - (1.2) mat. zbiór (lub bez nawiasów) ... przymiotnik - (2.1) gotowy ... 获取所有组合。

itertools.product

要获取随机字词,您可以>>> alphabet = "ABCDEF" >>> words = [''.join(x) for x in itertools.product(alphabet, repeat=3)] >>> words ['AAA', 'AAB', ... 'FFE', 'FFF'] >>> len(words) 216 列出该random.shuffle元素(不重复),或使用pop(重复)

random.choice

然而,从字母表中详尽地生成所有4,294,967,296个8个字母的单词将需要很长时间。如果您只需要一些随机样本,那么从字母表中加入8个随机字母会更简单。

>>> random.choice(words)
'EFA'
>>> random.shuffle(words)
>>> words.pop()
'CAD'