### A faster way to obtain orbits of a partition of the verrtex set

I am given a graph $G$ a set $S \subseteq V(G)$ and a vertex $v.$ I want to compute the representatives for the orbits of the stabilizer of $v$ of $\rm{Aut}(G)$ whose equivalence classes contain elements of $S.$ Currently what I am doing is the following:

def compute_valid_orbit_reps(G,S,v):
ret = []
O = G.automorphism_group(return_group=False, orbits=True,
partition=[ [v], [el for el in G.vertices() if el != v]])
for el in O:
if S.intersection(set(el)):
nb = el[0]
G.add_edge(nb,v)
if G.girth() >= 5:
ret += [nb]
G.delete_edge(nb,v)
return ret

I am wondering if there is a more efficient way to do the same, perhaps using GAP directly?

Best,

Jernej