Here is a way to list all the elements in a nice way. Say instead of using as to represent a coset I will just use .

When . Define the "length" of to be . And as I explained different length give different cosets. So begin with length=0. In that case the cosets have the form . So it can be (identity) or , , but not anything else because, say, because . When length=1 we have , , and and that is it.

So we can make a little table (actually it is a large table because there are infinitely many elements):

length = 0: (0,0), (1,1), (2,2)

length = 1: (1,0), (2,1), (3,2)

length =-1: (0,1), (1,2), (2,3)

...

And we add these elements (cosets) in an obvious way. It should be obvious that if then this table has only a single coloum so it is cyclic but only in that case.