[a, b, c, d, ...] というリストがあります。
これから次のようにタプルを要素に持つリストを作る関数があります。

[(a, [b, c, d, ...]), (b, [a, c, d, ...]), (c, [a, b, d, ...]), ...]

つまり、もともとのリストからひとつずつ要素を取り、
それとリストの残りでタプルを作る、そのようなものを要素に持つリストです。
(外側のリストや、中のリストは本当は順不同ですが、簡単のため説明では元の順を維持しています)

もともとのリストの要素の型は何でもよく、ジェネリックな関数です。

このような関数の名前は何が良いでしょうか。
今のところ、headTails という名前にしていますが、イマイチわかりにくいです。
(自分は作者なんで意図は分かるのですが、初見の他人にとって、という意味です)