The first question you should ask yourself is why you would want to generate all the elements of a (finite) group at all, because that is rarely necessary, and often impossible.
This is rather the point of Schreier-Sims: It computes a base and strong generating set for a group, which gives you something akin to a coordinate system to address group elements.
It also gives you the size of the group without ever computing all elements via the Orbit-Stabiliser theorem. James Mitchell has described this very well here: How do Gap generate the elements in permutation groups?
Once you have a base and strong generating set you can of course also iterate over all elements of the group, you'll just find that iterating over all elements of a group the size of, say, the Monster will be a bit tedious.
There is no implementation of Schreier-Sims for matrix groups in GAP, but only for permutation groups. GAP is open source, so in principle you can take inspiration from the code that is in GAP, and available under https://github.com/gap-system/gap
For reasonably small matrix groups (over finite fields) it is worth just looking at the permutation representation of the group.
There is an implementation of Schreier-Sims for matrix groups written in GAP, but not distributed with it, which is available at https://sourceforge.net/projects/matrixss/. I do not know how well it works. The code is open as well, so in principle you can get inspiration from that.
For basic computational group theory, I recommend looking at Holt, Eick, O'Brien's "Handbook of Computational Group Theory", or Hulpke's notes: http://www.math.colostate.edu/~hulpke/lectures/m676cgt/notes.pdf