def is_plaindrome(N):
temp = N
rev = 0
while N is not 0:
digit = N % 10
rev = rev * 10 + digit
N = N // 10
return temp == rev
print(max([a*b for a in range(100, 1000) for b in range(a, 1000) if is_plaindrome(a*b)]))
不太值得優化…