FAApply[rule_,s0_,list_]:=FoldList[{First[#1],#2}/.rule&,{s0},list]
FAStep[rule_,s0_,list_]:=Map[Last,Rest[FoldList[{First[#1],#2}/.rule&,{s0},list]]]
FAEvolveList[rule_,s0_,init_,t_]:=NestList[FAStep[rule,s0,#]&,init,t]
GFAEvolveList[rule_,seq_,init_]:=FoldList[FAStep[rule,#2,#]&,init,seq]
GFAEvolve[rule_,seq_,init_]:=Fold[FAStep[rule,#2,#]&,init,seq]
ToFARule[n_Integer,{s_Integer,k_Integer}]:=Flatten[MapIndexed[{1,-1}#2+{0,k}Mod[Quotient[#1,{k,1}],{s,k}]+{1,0}&,Partition[IntegerDigits[n,sk,sk],k],{2}]]
RasterGraphics[data_]:=Graphics[Raster[1-Reverse[data]],AspectRatioAutomatic]
RasterGraphics[data_,lab_]:=Graphics[Raster[1-Reverse[data]],AspectRatioAutomatic,PlotLabellab]
GroupQ[rule_]:=Apply[And,Apply[UnsameQ,Table[Cases[rule,({i,_}{_,y_})y],{i,Min[#[[1,1]]&/@rule],Max[#[[1,1]]&/@rule]}],{1}]]
groups22=Select[Range[0,255],GroupQ[ToFARule[#,{2,2}]]&]
{17,19,20,22,25,27,28,30,49,51,52,54,57,59,60,62,65,67,68,70,73,75,76,78,97,99,100,102,105,107,108,110,145,147,148,150,153,155,156,158,177,179,180,182,185,187,188,190,193,195,196,198,201,203,204,206,225,227,228,230,233,235,236,238}
Length[groups22]
64
Show[Graphics[Line[{{First[#],0},{First[#],Length[#]}}]&/@Split[Sort[FromDigits[Reverse[#],2]&/@GFAEvolveList[ToFARule[17,{2,2}],Table[Random[Integer,{1,2}],{10000}],Table[Random[Integer],{50}]]]],FrameTrue,PlotLabel17,FrameTicksNone,PlotRangeAll]];
Show[Graphics[Line[{{First[#],0},{First[#],Length[#]}}]&/@Split[Sort[FromDigits[Reverse[#],2]&/@GFAEvolveList[ToFARule[62,{2,2}],Table[Random[Integer,{1,2}],{10000}],Table[Random[Integer],{50}]]]],FrameTrue,PlotLabel62,FrameTicksNone,PlotRangeAll]];
Show[GraphicsArray[Partition[Table[Graphics[Line[{i,FromDigits[Reverse[GFAEvolve[ToFARule[#,{2,2}],Reverse[IntegerDigits[i,2,8]],Table[0,{8}]]],2]},{i,0,2^8-1}]],FrameTrue,FrameTicksNone,PlotLabel#]&/@groups22,8]]];