Лучший способ увидеть процесс - это изменить ваш код
lst = [[f'i is {i}, j is {j}' for j in range(y)] for i in range(x)]
, а затем распечатать список, чтобы увидеть итерации.
Для x = 3, y = 5, выше напечатает
[['i is 0, j is 0', 'i is 0, j is 1', 'i is 0, j is 2', 'i is 0, j is 3', 'i is 0, j is 4'],
['i is 1, j is 0', 'i is 1, j is 1', 'i is 1, j is 2', 'i is 1, j is 3', 'i is 1, j is 4'],
['i is 2, j is 0', 'i is 2, j is 1', 'i is 2, j is 2', 'i is 2, j is 3', 'i is 2, j is 4']]