Something roughly equivalent to:
s = set()
for e1 in edits1(word):
for e2 in edits1(e1):
s.add(e2) s = set()
for e1 in edits1(word):
for e2 in edits1(e1):
s.add(e2) >>> [a for a in range(3) for b in range(2)]
[0, 0, 1, 1, 2, 2]
It's just that for every iteration of the inner loop, it is evaluated and added to the result.Once you keep in mind that their order has the same meaning as with normal for loops it's not so tricky. You can even indent them that way to make that more obvious.