Не самый эффективный (Python создаст массив с миллиардом кортежей), но это один цикл:
for x, y, z in [(x, y, z) for x in range(10000, 11000) for y in range(10000, 11000) for z in range(10000, 11000)]:
if x*x == y*y + z*z:
print y, z, x
print '-'*50
Или, как предлагает Кристиан Виттс ,
for x, y, z in ((x, y, z) for x in xrange(10000, 11000) for y in xrange(10000, 11000) for z in xrange(10000, 11000)):
if x*x == y*y + z*z:
print y, z, x
print '-'*50
(при условии, что Python> = 2.4) использует генераторы вместо построения массива с миллиардами кортежей.
В любом случае, вы не должны так кодировать ... Ваш исходный код с вложенными циклами более понятен.