seqAdded = False
for seq in originalSeqs:
    if seq in candidate:
        continue
seqAdded = True
for i in reversed(list(range(len(seq) + 1))):
    if candidate.endswith(seq[:i]):
        newCandidate = candidate + seq[i:]
paths[len(newCandidate)].add(newCandidate)
if not seqAdded:
    return candidate
del paths[minLength]
print(dykSuperstring(['AGG', 'AGT', 'CCG', 'CGT', 'GAG', 'GGA', 'GGT',
    'GTA', 'GTG', 'TAG', 'TGG']))
Более эффективный алгоритм поиска кратчайшей суперстроки