In [252]: MG=framigraph.framigraph(3) In [253]: GG=ig.Graph.Adjacency(abs(MG).tolist(),ig.ADJ_UNDIRECTED) In [254]: ec1=[] In [255]: for e in GG.es: if MG[e.source,e.target] < 0: ec1.append(-1) else: ec1.append(1) .....: In [256]: ec2=[-ec for ec in ec1] In [257]: IG=ig.Graph.get_isomorphisms_vf2(GG,GG,edge_color1=ec1,edge_color2=ec2) In [258]: len(IG) Out[258]: 86016 In [259]: IG[0] Out[259]: [0, 2, 1, 3, 11, 57, 58, 8, 7, 53, 54, 4, 12, 14, 13, 15, 47, 33, 34, 44, 39, 25, 26, 36, 43, 21, 22, 40, 35, 45, 46, 32, 31, 17, 18, 28, 23, 41, 42, 20, 27, 37, 38, 24, 19, 29, 30, 16, 48, 50, 49, 51, 59, 9, 10, 56, 55, 5, 6, 52, 60, 62, 61, 63] In [260]: print np.linalg.norm(MG+np.matrix([[MG[k,l] for l in IG[0]] for k in IG[0]])) 0.0