interleave() choose a "pretty layout" method, e.g. More than one A? Y: remove two 'A' from pool return 'A' . interleave() . 'A' More than one B? Y: remove two 'B' from pool return 'B' . interleave() . 'B' one 'A'? Y: remove 'A' from pool return 'A' remove 'B' from pool return 'B'