cubeCoords=Tuples[{0,1},3];
plotLabels[labels_]:=(
Graphics3D[MapIndexed[Style[Text[#1,cubeCoords[[#2[[1]]]]],Background->Transparent,Black,20]&,labels],ImageSize->100,PlotRangePadding->.2,BoxStyle->Opacity[.5]]
);
showPerm[perm_]:=(
Show[Graphics3D[{Opacity[0.2],EdgeForm[Opacity[.2]],GraphicsComplex[{{0,0,0},{0,0,1},{0,1,0},{0,1,1},{1,0,0},{1,0,1},{1,1,0},{1,1,1}},Polygon[{{1,2,4,3},{3,4,8,7},{7,8,6,5},{5,6,2,1},{1,5,7,3},{2,6,8,4}}]]}],plotLabels[perm],ImageSize->100,PlotRangePadding->.2,Boxed->False,Lighting->"Neutral"]
);

perm1={3,1,4,2,7,5,8,6};
{showPerm[Range[8]],Graphics[{Arrowheads[Large],Arrow[{{0,0},{1,0}}]}],showPerm[perm1]}//GraphicsRow//Show[#,PlotLabel->{Range[8],perm1}]&
perm2={5,6,1,2,7,8,3,4};
{showPerm[Range[8]],Graphics[{Arrowheads[Large],Arrow[{{0,0},{1,0}}]}],showPerm[perm2]}//GraphicsRow//Show[#,PlotLabel->{Range[8],perm2}]&

group1=PermutationGroup[PermutationCycles/@{perm1,perm2}];
GroupElements[group1]//Length

CayleyGraph[group1]

Another representation

perm1={3,1,4,2,7,5,8,6};
{showPerm[Range[8]],Graphics[{Arrowheads[Large],Arrow[{{0,0},{1,0}}]}],showPerm[perm]}//GraphicsRow//Show[#,PlotLabel->{Range[8],perm1}]&
perm2={7,5,3,1,8,6,4,2};
{showPerm[Range[8]],Graphics[{Arrowheads[Large],Arrow[{{0,0},{1,0}}]}],showPerm[perm]}//GraphicsRow//Show[#,PlotLabel->{Range[8],perm2}]&

group2=PermutationGroup[PermutationCycles/@{perm1,perm2}];
GroupElements[group2]//Length

GroupElements[group1]==GroupElements[group2]

group2=PermutationGroup[PermutationCycles/@{{3,1,4,2,7,5,8,6},{7,5,3,1,8,6,4,2}}];
group3=SymmetricGroup[4];
CayleyGraph/@{group1,group2,group3}//GraphicsRow[#,ImageSize->500]&

nonequivalentPermutations[lst_,gr_]:=(
group=gr;

removeEquivalent[{}]:={};
removeEquivalent[list_]:=(
Sow[First[list]];
equivalents=Permute[First[list],#]&/@GroupElements[group];
DeleteCases[list,Alternatives@@equivalents]
);

reaped=Reap@FixedPoint[removeEquivalent,Permutations@lst];
reaped[[2,1]]
);

nonequiv=nonequivalentPermutations[{1,1,1,1,0,0,0,0},group1]

Partition[(showPerm/@nonequiv)~Join~{Graphics[]},4]//GraphicsGrid

Cayley graphs in 3 d

getLabelCoordinateMap[gp1_]:=Module[{points,labels,actualLabels,coordAliases,actualCoords},points=Cases[gp1,GraphicsComplex[points_,__]:>points,Infinity]//First;
labels=Cases[gp1,Text[___],Infinity];
actualLabels=labels[[All,1,1]];
coordAliases=labels[[All,2]];
actualCoords=points[[coordAliases]];
Thread[actualLabels->actualCoords]];

(* gets Polygon objects of convex hull of given points *)
getPolyhedron[points_]:=(
expr=ComputationalGeometry`Methods`ConvexHull3D[points,Graphics`Mesh`FlatFaces->False];
Cases[expr,GraphicsComplex[___],Infinity]
);

plotCayley3D[group_]:=(
edges=EdgeList[CayleyGraph[group]];
graph=GraphPlot3D[Rule@@@edges,VertexLabeling->True];
vcoords=getLabelCoordinateMap[graph];
polys=getPolyhedron[vcoords[[All,2]]];
Graphics3D[{Opacity[.8],polys},Boxed->False]
);

GraphicsRow[{plotCayley3D[group2],plotCayley3D[group3]}]