There is absolutely no excuse for mixing the two implementation into a "power-range" monstrosity. Implement the two separately and make some custom function composition like:
def pow(x, n):
return x**n
def pow_o_range(n, a, b):
return [(x, pow(x, n)) for x in range(a,b)]
for i, x in pow_o_range(3, 1, 10):
print "%s:%s" % (i,x),
# prints "1:1 2:8 3:27 4:64 5:125 6:216 7:343 8:512 9:729"