Could the size hint possibly be defined on `ElementSwaps` instead, and have `Permutations::size_hint` just call through to that?