I am particularly interested in Sp$(2n,\mathbb{Z})$, but I think an answer for a more general set of matrices would help.

General question: Given a subgroup of a group of matrices, what tools or software are available to find generators?

Specific question: Given a matrix $D$, let $C(D)$ be the centralizer of $D$. I am interested in finding a set of generators for $C(D)\cap\text{Sp}(2n,\mathbb{Z})$. Neither transvections nor elementary symplectic matrices are in $C(D)$. When $D$ is the specific matrix of interest, I can write all matrices in $C(D)$ in a explicit form in terms of 8 variables.

I've looked for a method for finding generators, and it seems like a hard problem. I was wondering if anyone had any ideas.