def solve(): r = range(100, 1000) return max(i * j for i in r for j in r if is_palindrome(i * j))
def is_lychrel(n): for i in range(50): n += int(str(n)[::-1]) if is_palindrome(n): return False return True
def generate_palindromes(): return (n for n in range(1000000) if is_palindrome(n) if is_palindrome(bin(n)[2:]))