python中while循环里面的for循环只有第一遍while的时候执行for下面的if

判断回文子串
a=input()
b=1 #起始回文位数
while b<=len(a):
for i in range(len(a)-b-b+1):
if a[i:i+b]==a[i+b:i+b+b]:
print(a[i:i+b+b])
b+=1
想把所有满足条件的回文子串都打印出来
一开始从只有2位的回文开始判断,循环结束后,判断4位的 然后继续
但是只有第一遍的时候打印出了结果,如下:
123321125775165561
33
11
77
55
第二遍的时候却没有执行。
一开始以为是while或for 循环第二遍没执行
但是再在下面添加打印b 和 i 的值的时候发现while 和for 都执行了 只是if没执行
不知道自己的做题方法对不对。现在只是想知道为什么第二遍开始if的条件也满足了 为什么没执行

img


while b<=len(a):
    for i in range(len(a)-b-b+1):
        if a[i:i+b]==a[i+b:i+b+b]:
            print(a[i:i+b+b])
    b+=1

img