2017-07-06 5 views
-3

入力リストに基づいて、文字列内の順列を作る:(インデックスのみなら[1] /有している)パターン

['A', 'dog,big/small;rat,big/small', '12', '21'] 

戻りリスト:

['A', 'dog,big;rat,big', '12', '21'] 
['A', 'dog,small;rat,big', '12', '21'] 
['A', 'dog,big;rat,small', '12', '21'] 
['A', 'dog,small;rat,small', '12', '21'] 
+1

何を試しましたか?私はここでスタックオーバーフロー型の質問は表示されません。 – Prune

+0

ようこそStackOverflowへ。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [on topic](http://stackoverflow.com/help/on-topic)および[How to Ask](http://stackoverflow.com/help/how-to-ask)をここで適用してください。 StackOverflowは、デザイン、コーディング、リサーチまたはチュートリアルサービスではありません。 – Prune

答えて

0

この1つは一般的なインプットのために働くべきですそのタイプの文字列:

def permute(s): 
    a, b = s.split(',') 
    return [a + "," + c for c in b.split('/')] 

def traverse(s): 
    parts = s.split(';', 1) 
    if len(parts) == 1: 
     return permute(s) 
    else: 
     return sum([[k + ';' + l for l in traverse(parts[1])] for k in permute(parts[0])], []) 

for s in traverse('dog,big/small;rat,big/small'): 
    print ['A', s, '12', '21']