>>745
コピーを間違えた

genSeq[elms_, n_] :=
  Module[
   {f, g},
   f[list_, elems_] := Map[Prepend[list, #] &, elems];
   g[list_, elem_] := Flatten[Map[f[#, elem] &, list], 1];
   Nest[g[#, elms] &, {{}}, n]
  ]

で、

genSeq[{0, 1}, 5]