Assume I have a matrix $A$ and a vector $b$, both over some finite field $\mathrm{GF}(q)$. I would like to enumerate _all_ solutions to $A x = b$ (there are only finitely many).
I can generate a particular solution using $A \ b$, and I can generate the nullspace of $A$ using $A.right_kernel()$, but how should I combine the two to enumerate all solutions?