Дав отлично понял, почему написанный вами синтаксис не работает.
Вот синтаксис, который работает для того, что вы, вероятно, пытаетесь сделать:
Если вы хотите все 4 x 4 комбинации для x и y, вам нужно 2 вложенных цикла:
for x in range(4):
for y in range(4):
print x, y
Или, если вы действительно хотите использовать один цикл:
import itertools
for (x, y) in itertools.product(range(4), range(4)):
print x, y
itertools.product()
генерирует все возможные комбинации:

Это менее читабельно, чем 2 цикла в этом простом случае, но модуль itertools имеет много других мощных функций и его стоит знать ...
Если вы хотите, чтобы x
и y
продвигались параллельно по двум последовательностям (или итерация "lock-step"):
for (x, y) in zip(range(4), range(4)):
print x, y
# `zip(range(4), range(4))` is silly since you get x == y;
# would be useful for different sequences, e.g.
# zip(range(4), 'abcd')
[Фон: имя zip
происходит от Хаскелла; подумайте о том, как молния берет один зуб отсюда и один оттуда:

zip()
обрезается до длины самой короткой последовательности; у модуля itertools есть другие варианты ...]