def palind(n):
return [n*'%s'%tuple( list(i) + list(i[-(n%2)-1::-1]) ) for i in product(*( [range(1,10)]+[range(10)]*((n-1)/2)) )]
print map(palind, [3,4,5])
如果需要产生回文数,一般会判断是否对称或比较反转后是否还是自身然后过滤,范围较大时,效率就不高了
n位的回文数是其实是由前Ceiling(n/2)位决定的,以上代码采用构造法生成回文数,生成10位以内的回文数<1s (不输出)
a=input('输入:')#输入字符串b=a[::-1]#倒序输出
if a==b:#判断是否相等
print('{} 是回文数'.format(a))
#format方法输出
else:
print('{} 不是回文数'.format(a))
#format方法输出