Lazily combine ranges dependent on modulo with one loop
Code is read far more often than written.
So I prefer to make code as readable as possible.
Clever code is very often not good code.

I find the posted code very hard to read,
and I don't see why it has to be that way.

I believe this simple, straightforward implementation meets your posted requirements and very easy to read.

def gen(n):
    for x in range(n - 1, divisor - 1, -1):
        if x % divisor == 0:
            yield x
    yield 0
    for x in range(n):
        if x % divisor:
            yield x