I have to compute the number of bases of the vector space $\mathbb Z _2 ^n$ over $\mathbb Z_2$ and the vectors of each such basis.
For example for $n=2$, the number of bases is $6$ the vectors of each such basis are: $((0,1),(1,0)) \ ;((0,1),(1,1));\ ((1,0),(0,1));\ ((1,0),(1,1));\ ((1,1),(0,1));\ ((1,1),(1,0))$ In my algorithm I managed to make a list that consists of all the vectors(I managed to compute the number of bases too). And to get the bases I was thinking to get all combinations of $p = dim \ V$ ($2$ for $n=2$,$3$ for $n=3$,...) and to check if they are linearly independent. And because the number of vector choosen is equal to the dimension, it will be a system of generators too, so a basis. But I don't know to make an algorithm if the vectors are linearly independent. Can somebody help me,please? (I am coding in Python)
Hint: the first vector can be any nonzero vector $u_1$. The second is any vector $u_2$ other than $0$ or $u_1$. The third is any vector other than the linear combinations of $u_1$ and $u_2$ (of which there are $4$)...