擅长:python、mysql、java
<pre><code>def mutations(word, hamming_distance, charset='ATCG'):
for indices in itertools.combinations(range(len(word)), hamming_distance):
for replacements in itertools.product(charset, repeat=hamming_distance):
mutation = list(word)
for index, replacement in zip(indices, replacements):
mutation[index] = replacement
yield "".join(mutation)
</code></pre>
<p>此函数生成汉明距离小于或等于给定数字的单词的所有突变。它是相对有效的,并且不检查无效的单词。然而,<strong>有效突变可以出现多次</strong>。如果希望每个元素都是唯一的,请使用<strong>集合</strong>。在</p>