2016-11-20 10 views
0

私はこの文字列を持っています: "case"と "ro"。私はそれらの間のすべての組み合わせを取得する必要があります。ここでは、2番目の文字列の1文字を最初の文字列に置き換えます。ただし、文字が他の文字列よりも大きい場合に限ります。例: "rose:r> c、o> a。他の例:" cose "、" roso "、" coso " 繰り返しを使って何かを書きましたが、無限ループになり、生成しません2つの文字列を再帰的に組み合わせる

+2

は、あなたがこれまでにしようとしているものを私たちに見せて下さい!私は間違っていたところ –

+0

あなたのコード、およびあなたが見てきたすべてのエラーを提供してください。 – kabanus

答えて

0

私は質問から理解していることに基づいて回答しています。次の回答が正しいかどうかを確認してください。そうならば、私は後でコードを説明することができます。

def solve(s1, s2): # prints all combinations of s1 from letters of s2 in a list 
      ans = [s1] 
      if s1=="": 
       return ans 
      tmp = solve(s1[1:],s2) 
      ans += [ s1[0]+x for x in tmp ] 
      for c in s2: 
       if c>s1[0]: 
        ans += [ c+x for x in tmp ] 
      return list(set(ans)) 

print solve("case","ro") 
+0

はい!ああ、今私が得ました!ありがとう!私は基本的に反復を台無しにした...何のsh ame – Alessandro

+0

あなたはコードを理解しましたか? –

+0

はい!それは明らかです – Alessandro

関連する問題