擅长:python、mysql、java
<p>您可以使用itertools.combinations获得所有可能组合的列表。使用zip,您不仅可以跟踪角色,还可以跟踪角色的位置。整个过程变成一个单一的列表理解练习,应该是相当有效的</p>
<pre><code>from itertools import combinations
src='cattcat'
trg='cat'
comb_lst=[idx for el, idx in zip(
combinations(src,len(trg)),
combinations(range(len(src)),len(trg))
) if ''.join(el)==trg]
print(comb_lst)
</code></pre>
<p>输出:</p>
<pre><code>[(0, 1, 2), (0, 1, 3), (0, 1, 6), (0, 5, 6), (4, 5, 6)]
</code></pre>