Using an old version of GAP can help you sorting these subgroups:
gap> LoadPackage("sonata");;
s4:=SymmetricGroup(4);;
e:=Subgroups(s4);
Size(e);
Group(()), Group([ (1,3)(2,4) ]), Group([ (1,4)(2,3) ]),
Group([ (1,2)(3,4) ]), Group([ (3,4) ]), Group([ (2,4) ]), Group([ (2,3) ]),
Group([ (1,4) ]), Group([ (1,3) ]), Group([ (1,2) ]), Group([ (2,4,3) ]),
Group([ (1,3,2) ]), Group([ (1,3,4) ]), Group([ (1,4,2) ]),
Group([ (1,4)(2,3), (1,3)(2,4) ]), Group([ (1,2)(3,4), (3,4) ]),
Group([ (1,3)(2,4), (2,4) ]), Group([ (1,4)(2,3), (2,3) ]),
Group([ (1,2)(3,4), (1,3,2,4) ]), Group([ (1,3)(2,4), (1,2,3,4) ]),
Group([ (1,4)(2,3), (1,2,4,3) ]), Group([ (3,4), (2,4,3) ]),
Group([ (1,3), (1,3,2) ]), Group([ (1,3), (1,3,4) ]),
Group([ (1,4), (1,4,2) ]), Group([ (1,3)(2,4), (1,4)(2,3), (1,2) ]),
Group([ (1,2)(3,4), (1,4)(2,3), (1,3) ]),
Group([ (1,2)(3,4), (1,3)(2,4), (1,4) ]),
Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3) ]),
Group([ (1,3)(2,4), (1,4)(2,3), (2,4,3), (1,2) ])
30
In this updated but not a new version of GAP 4.6.4, you may use the following codes without calling sonata instead:
gap>s4:=SmallGroup(24,12);;
e:=AllSubgroups(s4);
Size(e);