Why if I write this:

{(x,y) for x in {1, 2, 3} for y in {'a', 'b', 'c'}}

I obtain {(2, 'c'), (3, 'c'), (1, 'c'), (2, 'a'), (3, 'a'), (2, 'b'), (1, 'a'), (3, 'b'), (1, 'b')}

and not {(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')}?

I'm talking about page 7 of Prof Mancini's slides