我有这个字符串:" case"和" ro"。我需要得到它们之间的所有组合,我将第二个字符串中的单个字母替换为第一个字母,但前提是字母大于另一个字母。例如:在"玫瑰:r> c,o> a。其他例子有:" cose"," roso"," coso" 我尝试使用迭代编写一些东西,但是它会进行无限循环并且不会产生任何结果。如果有人可以帮我找出一种更简单的方法,那就太好了。
答案 0 :(得分: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")