生成符合特定条件的7个字母单词列表 - Python

时间:2013-07-28 14:53:23

标签: python list words alphabet

我正在尝试在python中生成满足以下条件的7个字母单词列表:

  1. 单词是固定长度(7个字母)
  2. 单词只是大写(我使用的是ascii_uppercase)
  3. 形式是?D?R?T?在哪里?充当信件的占位符。
  4. 因此以下是有效的例子:

    • ADPRETE
    • BDFRUTW
    • JDQRQTA
    • ZDZRZTZ
    • QDQRQTQ

    我正在使用以下代码,但想知道如何生成符合第3条标准的单词。任何帮助/指针都会很棒!

    from string
    from itertools import product
    
    for n in range (7,8):
       for arr in product(string.ascii_uppercase, repeat=n):
          print ''.join(arr)
    

3 个答案:

答案 0 :(得分:2)

import string
import itertools as IT

for arr in IT.product(string.ascii_uppercase, repeat=4):
    print ''.join('{}D{}R{}T{}'.format(*arr))

答案 1 :(得分:2)

通用解决方案。只需创建一个面具,它将为您完成剩下的工作:)

from string import ascii_uppercase
from itertools import product

def gen_words(mask):
    replace = mask.count('?')
    mask = mask.replace('?', '{}')
    for letters in product(ascii_uppercase, repeat=replace):
        yield mask.format(*letters)

示例:

>>> list(gen_words('?Z'))
['AZ', 'BZ', 'CZ', 'DZ', 'EZ', 'FZ', 'GZ', 'HZ', 'IZ', 'JZ', 'KZ', 'LZ', 'MZ', 'NZ', 'OZ', 'PZ', 'QZ', 'RZ', 'SZ', 'TZ', 'UZ', 'VZ', 'WZ', 'XZ', 'YZ', 'ZZ']

答案 2 :(得分:0)

from string import ascii_uppercase
from itertools import product

for letters in product(ascii_uppercase, repeat=4):
    print "%sD%sR%sT%s" % letters