swap list pairs
generate ()
longgest substring