I'll explain with an example.
Let's say that you've got some existing nested for-loop that you want to inline:
for bytestring in x:
	for i in bytestring:
		for k in reversed(range(8)):
			yield ((i & (0b1 << k)) >> k)Intuitively, you might think that you would type something like "bit for k in bits for bits in in bytes for bytes in x" — but this is wrong.
Instead, you must leave the fors in the same order as in the code-block form, only popping the inner expression itself to the front:
iter(  ((i & (0b1 << k)) >> k) for bytestring in x for i in bytestring for k in reversed(range(8))  )