Pierwszy błąd masz tutaj:
Kod: Zaznacz cały
if len(s)==2:
if s[0]==s[1]:
zmienna=True
zmienna=False
Nawet jeśli s[0]==s[1] to zmienna i tak będzie miała wartość False, to drugie przypisanie powinnaś dać po else. Albo można też pozbyć się przypisywanie do zmiennej i dać return, wtedy obejdzie się bez else.
Drugi błąd jest taki że twoje rekurencyjne wywołania nie mają żadnego efektu, powinno być tak:
Z tym że na początku ustawiasz zmienna na True.
Program będzie wtedy działał, tyle że ta rekurencja jest tutaj wstawiona trochę na siłę (można po prostu sprawdzić czy s
!= s[len(s)-i-1]). Zastanów się czy nie lepiej byłoby (jeśli masz to napisać rekurencyjnie) sprawdzać czy pierwsza i ostatnia litera są takie same, a jeśli tak to wywoływać funkcję rekurencyjnie dla tego co jest w środku ?