gerador continua retornando o mesmo valor

Eu estou preso neste pedaço de código porque eu não consigo fazer com que o gerador me retorne o próximo valor toda vez que ele é chamado - ele fica no primeiro! Dê uma olhada:

da importação numpy *

def ArrayCoords(x,y,RowCount=0,ColumnCount=0):   # I am trying to get it to print
    while RowCount<x:                            # a new coordinate of a matrix
        while ColumnCount<y:                     # left to right up to down each
            yield (RowCount,ColumnCount)         # time it's called.
            ColumnCount+=1
        RowCount+=1
        ColumnCount=0

Aqui está o que eu recebo:

>>> next(ArrayCoords(20,20))
... (0, 0)
>>> next(ArrayCoords(20,20))
... (0, 0)

Mas é apenas preso no primeiro! Eu esperava isso:

>>> next(ArrayCoords(20,20))
... (0, 0)
>>> next(ArrayCoords(20,20))
... (0, 1)
>>> next(ArrayCoords(20,20))
... (0, 2)

Vocês poderiam me ajudar com o código, assim como explicar por que isso acontece? Agradeço antecipadamente!

questionAnswers(2)

yourAnswerToTheQuestion