In [1]:
import itertools as it

def is_palindrome(n):
    return str(n) == str(n)[::-1]

a = range(900, 1000)
palindromes = [(p[0], p[1], p[0] * p[1]) for p in it.product(a,a) if is_palindrome(p[0] * p[1])]
sorted(palindromes, key = lambda x: x[2])


Out[1]:
[(902, 909, 819918),
 (909, 902, 819918),
 (902, 914, 824428),
 (914, 902, 824428),
 (924, 932, 861168),
 (932, 924, 861168),
 (916, 968, 886688),
 (968, 916, 886688),
 (924, 962, 888888),
 (962, 924, 888888),
 (913, 993, 906609),
 (993, 913, 906609)]

In [ ]: