Python narsist sayılar

n haneli bir sayının basamaklarının n'inci üstlerinin toplamı, sayının kendisine eşitse, böyle sayılara narsist sayılar (armstrong sayıları da olur...) deniyor. Örneğin, 153, 3 haneli 1^3 + 5^3 + 3^3 = 153, olduğu için, 153 sayısı bir armstrong sayısı oluyor. Bununla ilgili bir forum konusu şurada vardı. Ben de en basitinden şöyle birşey yazdım;

a = input("Kac Hane...")
for i in xrange(10**(a-1),10**a):
    if sum(int(x)**a for x in str(i)) == i:
        print i

Tabi bu geliştirilmeye açık :)