Подстроки задач Python без циклов

#python #python-3.x #substring

#python #python-3.x #подстрока

Вопрос:

Вы должны посчитать, сколько подстрок данной строки начинается и заканчивается одной и той же буквой. Вы не можете использовать в своем коде следующее: for,while, sum,map,reduce,filter,import,eval,exec,complile, single

Мой код, но не работает должным образом:

 def substringsV2(i,string,sub_list):
    if i == len(string)-1:
        return len(sub_list),sub_list
        # return len(sub_list)
    if string[:i   2][0] == string[:i   2][-1] and  string[:i   2]not in sub_list:
        substring = string[:i   2]
        sub_list.append(substring)
    if string[i:][0] == string[i:][-1]  and  string[i:] not in sub_list:
        substring = string[i:]
        sub_list.append(substring)
    return substringsV2(i   1,string,sub_list)
 
def substrings(i,string,subs_list):
    if i == len(string):
        print(subs_list)
        return substringsV2(0,string,subs_list)
    if len(string[i]) == 1:
        subs_list.append(string[i])
    return substrings(i 1,string,subs_list)

s = 'aba'
if len(s) == 0:
    print()
else:
    print(substrings(0,s,[]))
 

Например, введите ‘aba’
Подстроки: a, b, a, ab, ba, aba ,

Вывод 4, потому что есть 4 подстроки, которые начинаются и заканчиваются одной и той же буквой

Комментарии:

1. Что выводит ваш код? Что он должен печатать? Что означает «не работает»?

2. Я добавил изображение в описания

3. Пожалуйста, не добавляйте изображение. Можете ли вы добавить (в виде текста) в вопрос, какой результат вы ожидаете от ввода babab ? Можете ли вы также добавить, какой результат выдает ваш код?

4. @RocketHazmat с помощью «babab» мой код возвращает 7, но должно быть 10.

5. @RocketHazmat б а б а б баб баб аба баб бабаб