2013-07-28 26 views
3

我想產生的7個字母詞蟒蛇滿足下列條件的列表:生成的7個滿足特定條件字母的單詞列表 - Python的

  1. 詞是固定長度(7個字母)
  2. 單詞只是大寫(我正在使用ascii_uppercase)
  3. 形式是?D?R?T?哪裏?充當信件的佔位符。

因此,以下是有效的例子:

  • ADPRETE
  • BDFRUTW
  • JDQRQTA
  • ZDZRZTZ
  • QDQRQTQ

我使用以下的一段代碼,但wonde如何生成符合第三條標準的單詞。任何幫助/指針都會很棒!

from string 
from itertools import product 

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

回答

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
import string 
import itertools as IT 

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

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