Yes my bad : https://ideone.com/IGUbsU This is the link of the Ideone. I am also pasting my code here :
from functools import cache
t = int(input())
for i in range(t):
lst = input().split(" ")
l = lst[0]
r = lst[1]
dic = {}
@cache
def f(i, flag, even, odd, nums):
if (i >= len(nums)):
if ((odd-even) == 1):
return 1
return 0
take = 0
if (i % 2 != 0):
if(flag==True):
for j in range(10):
take += f(i+1, True, even, odd+j, nums)
else:
for j in range(int(nums[i])):
take+=f(i+1, True, even, odd+j, nums)
take+=f(i+1, flag, even, odd+int(nums[i]), nums)
else:
if(flag==True):
for j in range(10):
take += f(i+1, True, even+j, odd, nums)
else:
for j in range(int(nums[i])):
take+=f(i+1, True, even+j, odd, nums)
take+=f(i+1, flag, even+int(nums[i]), odd, nums)
return take
val1 = f(0, False, 0, 0, str(int(l)-1))
val2 = f(0,False, 0, 0, r)
val2 -= val1
print(val2)