Karakter dizisinde sıralı sorgulama

Merhaba. Aşağıdaki kodlarda saçmalamayı bir türlü önleyemedim.

#bu kelimeleri sql ile arayacağız
a = "ali okuldan geldiğinde ben evde yoktum"

#tablodaki toplam data şöyle:
im.execute("select algi from sohbet")
print(im.fetchall())
#[('ali okuldan geldi',), ('ali okuldan gelince yemek yedi',),
#('ali okuldan gelirse bakkala gönder',), ('sen gittiğinde ben evde idim',),
#('sen gelmişken ben yatıyordum',), ('geldin ama evde yemek yok',),
#('bugün tatil okul yok',), ('alacaktım ama paramız yok',)]


k = 0
for i in range(len(a)): #ilk harften başlayarak ve devam eden her harfi ekleyerek
    t = (a[0:i])
    im.execute("select algi from sohbet where algi like '{}%'".format(t))
    s = im.fetchall()
    
    if not s:# boş liste döndüğü anda
        t = (a[0:i-1])# bir adım geriye, en son dolu döngüye
        im.execute("select algi from sohbet where algi like '{}%'".format(t))
        s = im.fetchall()
        print(s)# [('ali okuldan geldi',)]
        b = a.replace(t, "")# cümlenin geri kalanı için
        print(b)# ğinde ben evde yoktum
        #break

#amacım, "b"yi yeni bir string olarak alıp yukarıdaki işlemi devam ettirmek.
#aşağıdaki kodlar sonuçsuz denemelerimden sadece biri
        for i in range(len(b)):
            t = (b[k:i])
            im.execute("select algi from sohbet where algi like '{}%'".format(t))
            s = im.fetchall()
            
            if not s:
                k+=1
                print(t)
                print(s)
# bu kodlar boş liste döndürmeye devam ediyor
#halbuki kalan parçada "ben", "evde" ve "yoktu" kelimeleri ile, toplamda eşleşme beklentim:
#"ali okuldan geldi... ben evde... yoktu.."


Yardım lütfen

Farklı yoldan çözdüm:

k=0
kelimeler=[]
anlaşılmayan=[]

c = input("Bişeyler yaz: ")

def giris_sorgu(k, kelime=b[k]):

    im.execute("select algi from sohbet where algi like '%{}%' group by algi".format(b[k]))
    if im.fetchone()!=None or '':   # eğer kelime satırda varsa, kelimeyi alıyoruz   
        kelime=b[k]
        kelimeler.append(kelime)

    elif im.fetchone()==None or '': # eğer kelime satırda yoksa, olan eşleşmeyi bulana kadar
                                                    # soldan kırpıyoruz
        g=len(b[k])
        kelime=b[k]
        anlaşılmayan.append(kelime)
        
        for c in range(1,g-1):
            ke=kelime[:g-c]
            im.execute("select algi from sohbet where algi like '%{}%' group by algi".format(ke))
                                        
            if im.fetchone()!=None or '':
                kelimeler.append(ke)
                break

def sırala(k):  #k'nın değerini  belirliyoruz.
    k=-1
    for i in range(0,10):
        k+=1
        if (len(b)-1)>=k:           
            giris_sorgu(k, kelime=b[k])
sırala(k)
print("anlaşılmayan: ",anlaşılmayan) #['geldiğinde', 'yoktum']
print("kelimeler: ",kelimeler) #  ['ali', 'okuldan', 'geldi', 'ben', 'evde', 'yok']