I wrote the following function in haskell, as it will enumerate every integer:
integers = (0:)$ concat $ zipWith (\x y -> [x,y]) [1..] (map negate [1..])
I wonder if there are better ways to do it, it does seem a bit too complicated.
Also, I wonder are there standard implementations to list all elements in the integer lattice of dimension $k$.
(or, alternatively, as in @DanielWagner’s solution in the comment below that works better I think)