def bar(x):
return tuple((6-x[2],6-x[1],6-x[0]))
def diff(e):
inter=[i for i in e[0] if i in e[1]]
xp=[i for i in e[0] if i not in inter][0]
yp=[i for i in e[1] if i not in inter][0]
return tuple(sorted([xp,yp]))
xm= ((((0,3,5),(2,4,6)),((1,2,5),)),
(((1,3,5),(0,2,4)),((2,5,6),)),
(((0,3,5),(2,4,6)),((1,3,5),(0,2,4))),
(((0,1,4),), ((1,2,5),)),
(((0,2,5),(1,4,6)),((1,2,5),)),
(((0,2,4),), ((1,2,5),)),
(((1,3,4),), ((2,4,5),)),
(((0,2,4),), ((1,3,4),)),
(((0,2,5),(1,4,6)),((1,4,5),)),
(((0,3,5),(2,4,6)),((2,4,5),)),
(((0,2,4),), ((1,4,5),)),
(((0,2,5),), ((1,4,5),)),
(((0,1,4),), ((0,2,5),)),
(((0,3,4),), ((1,4,5),)),
(((0,3,4),), ((2,4,5),)),
(((1,3,5),(0,2,4)),((2,4,5),)),
(((0,2,4),), ((1,3,5),(0,2,4))),
(((0,2,5),), ((1,5,6),)),
(((0,2,5),), ((0,2,5),(1,4,6))),
(((0,4,5),), ((1,5,6),)),
(((0,2,5),(1,4,6)),((0,4,5),)),
(((0,4,5),), ((2,5,6),)),
(((0,3,5),(2,4,6)),((0,4,5),)))
xn=[]
for m in xm:
for i in range(7):
st=[]
for a in m[0]:
st.append(addm(a,i))
st=tuple(st)
en=[]
for b in m[1]:
en.append(addm(b,i))
en=tuple(en)
xn.append(tuple(sorted([st,en])))
st=[]
for a in m[0]:
st.append(bar(addm(a,i)))
st.reverse()
st=tuple(st)
en=[]
for b in m[1]:
en.append(bar(addm(b,i)))
en.reverse()
en=tuple(en)
xn.append(tuple(sorted([st,en])))
xp= ((((0,2,5),), ((1,3,4),)),
(((0,3,5),), ((1,2,4),)),
(((0,1,5),), ((1,3,6),(0,2,4))),
(((0,2,5),), ((1,3,6),(0,2,4))),
(((0,3,5),), ((1,3,5),(2,4,6))),
(((0,4,5),), ((1,3,5),(2,4,6))),
(((1,2,4),), ((1,3,5),)),
(((0,1,5),), ((1,2,6),)),
(((1,3,4),), ((2,4,5),)),
(((1,3,5),), ((2,4,5),)),
(((1,3,5),(2,4,6)),((2,3,5),)),
(((1,3,5),(2,4,6)),((2,4,5),)),
(((2,4,5),), ((3,5,6),)),
(((0,3,4),), ((1,2,5),)),
(((0,2,6),), ((1,3,4),)),
(((0,4,5),), ((3,5,6),)))
xq=[]
for m in xp:
for i in range(7):
st=[]
for a in m[0]:
st.append(addm(a,i))
st=tuple(st)
en=[]
for b in m[1]:
en.append(addm(b,i))
en=tuple(en)
xq.append(tuple(sorted([st,en])))
st=[]
for a in m[0]:
st.append(bar(addm(a,i)))
st.reverse()
st=tuple(st)
en=[]
for b in m[1]:
en.append(bar(addm(b,i)))
en.reverse()
en=tuple(en)
xq.append(tuple(sorted([st,en])))
xn=xn+xq
ll=len(xn)
for i in range(ll-1,-1,-1):
if xn.count(xn[i])>1:
xn.pop(i)
exp=[]
for i in range(len(xn)/14):
ll=[]
for j in range(14):
ll=ll+[e for e in H.edges() if diff(e)==xn[14*i+j]]
exp.append(ll)
ssa= (((1, 2, 6),),
((1, 3, 6),),
((1, 4, 5),),
((1, 4, 6), (0, 3, 5)),
((2, 3, 5),),
((2, 4, 6), (0, 3, 5)))
ssb=(((0,1,3),),((0,4,6),),((1,3,6),),((1,4,5),),((2,4,6),(0,3,5)),((2,4,6),(1,3,5)))
tri=(((0, 2, 6),),
((0, 3, 6),),
((0, 4, 6),),
((1, 2, 6),),
((2, 3, 6),),
((3, 4, 6),))