In [93]:
from math import floor

def findSubsequence(s):
    print(s)
    result, n = [], len(s)
    if n > 1:
        mid = floor(n/2)
        result = result + findSubsequence(s[:mid])
        result = result + findSubsequence(s[mid:])
        result.append(s[:mid]+s[mid+1:])
    result.append(s)
    return result

In [108]:
def findSub(s):
    n, result, result2 = len(s), list(s), []
    
    #for i in range(1,len(snapshot)):
    #    result.append(snapshot[i-1]+snapshot[i])
    for i in range(n):
        for j in range(i+1,n):
            result2.append(s[i]+s[j])
    result3 = []
    for i in range(len(result2)):
        for j in range(i+1,len(result2)):
            result3.append(result2[i]+result2[j])
    print(result, result2, result3)
    return result

In [109]:
#a, b = "ABC", "BAC"
a = "ACCGGTCGAGTGCGCGGAAGCCGGCCGAA"
B = "GTCGTTCGGAATGCCGTTGCTCTGTAAA"
LONGEST = "GTCGTCGGAAGCCGGCCGAA"
result = bruteForceLCS(a,b)
#print (LONGEST in result)
#print(result)
#print(result == LONGEST, result)
print(findSub("ABCD"))
#print(subs)


['A', 'B', 'C', 'D'] ['AB', 'AC', 'AD', 'BC', 'BD', 'CD'] ['ABAC', 'ABAD', 'ABBC', 'ABBD', 'ABCD', 'ACAD', 'ACBC', 'ACBD', 'ACCD', 'ADBC', 'ADBD', 'ADCD', 'BCBD', 'BCCD', 'BDCD']
['A', 'B', 'C', 'D']

In [ ]: