I have found in a paper the group $\Gamma_0(18)$ can be generated by the following list of matrices:

$\displaystyle \left( \begin{array}{rr} 7 & -1 \\ 36 & 5 \end{array} \right) $

$\displaystyle \left( \begin{array}{rr} 13 & -8 \\ 18 & -11 \end{array} \right) $

$\displaystyle \left( \begin{array}{rr} 71 & -15 \\ 90 & -9 \end{array} \right) $

- $\displaystyle \left( \begin{array}{rr} 55 & -13 \\ 72 & -17 \end{array} \right) $
- $\displaystyle \left( \begin{array}{rr} 7 & -2 \\ 18 & -5 \end{array} \right) $
- $\displaystyle \left( \begin{array}{rr} 31 & -25 \\ 36 & -29 \end{array} \right) $
- $\displaystyle \left( \begin{array}{rr} 1 & 1 \\ 0 & 1 \end{array} \right) $
- $\displaystyle \left( \begin{array}{rr} -1 & 0 \\ 0 & -1 \end{array} \right) $

E.g. $31 \times (-29) - 36 \times (-25) = -899+900=1 $ In fact, $36, 18, 19 \equiv 0 \pmod {18}$.

These generators look arbitrary. Is there a list of generators of $\Gamma_0(N)$ for $N < 100$ ?

Is there a computer program or algorithm for finding generators of congruence groups, example using a linear algebra package such as `sage`

?