chars = "ACGT"
def neighbors(pattern, d):
assert(d <= len(pattern))
if d == 0:
return [pattern]
r2 = neighbors(pattern[1:], d-1)
r = [c + r3 for r3 in r2 for c in chars if c != pattern[0]]
if (d < len(pattern)):
r2 = neighbors(pattern[1:], d)
r += [pattern[0] + r3 for r3 in r2]
return r
这里有一个快速而肮脏的解决方案:
以下是一些输出示例:
^{pr2}$请注意,这给了在上完全不同于
d
位的邻居,而不是至多个d
个位置。如果需要后者(正如示例输出所示),可以简单地将d
的不同值的结果组合起来,如下所示:以下是一些输出示例:
相关问题 更多 >
编程相关推荐