2017-03-11 5 views
0

私は以下のリストを持っています。そして私は、私は次のコードを使用しているが、それはパターンに従わない母音+子音+母音+子音母音と子音のパターンですべての単語のリストを作ってください

consonants=["b","c","k"] 
vowels=["a","o"] 
word1=vowels,consonants,vowels,consonants 

、この摂餌して、すべての可能な単語のリストを作りたい

def generate (word): 
     import itertools 
     for i in itertools.permutations(consonants): 
      for j in itertools.permutations(vowels): 
        print (''.join(i),''.join(j)) 
+1

あなたは 'def generate(word):'を持っていますが、 'word'では何もしません。それは何の意義ですか? – roganjosh

答えて

3
from itertools import product 
from pprint import pprint 

pprint([''.join(t) for t in product(vowels, consonants, vowels, consonants)]) 

が得られます:

['abab', 
'abac', 
'abak', 
'abob', 
'aboc', 
'abok', 
'acab', 
'acac', 
'acak', 
'acob', 
'acoc', 
'acok', 
'akab', 
'akac', 
'akak', 
'akob', 
'akoc', 
'akok', 
'obab', 
'obac', 
'obak', 
'obob', 
'oboc', 
'obok', 
'ocab', 
'ocac', 
'ocak', 
'ocob', 
'ococ', 
'ocok', 
'okab', 
'okac', 
'okak', 
'okob', 
'okoc', 
'okok'] 
0
[v1 + c1 + v2 + c2 for v1 in vowels for c1 in consonants for v2 in vowels for c2 in consonants] 

より良い方法があるか確認してください。

編集:Elmex80sの答えはより良い方法です。

関連する問題