回文检查器在循环时没有给出所有正确的值

Palindrome checker not giving all correct values when looped

我正在尝试检查一系列数字(从 100 到 999)的乘积是否为回文。我的回文检查器正在运行,但是当我尝试将它合并到我的循环中时,我没有得到所有可能的答案。

def pali_check(n):
  n = str(n)
  pali = n[::-1]
  if pali == n:
   print(pali)

for x in range(999,99,-1):
  product = x*(x+1)
  pali_check(product)

我应该得到这个范围内的所有回文(例如一个是 906609)

但是,我得到的唯一值是 289982。如何修改我的代码以便它给出所有可能的结果?

906609 = 913 * 993

因为你只检查 n*(n+1),你不会找到那个

另一方面,

289982 = 538 * 539

这就是你找到它的原因

您应该尝试使用嵌套循环并将两个循环变量相乘

for x in range(999, 99, -1):
    for y in range(999, 99, -1):
        product = x * y
        pali_check(product)

您可以轻松优化以上内容以防止重复