permutations

trait Collection[A] {
  def permutations: Iterator[Collection[A]]
}

permutations calcula todas as permutações possíveis dessa coleção e retorna um Iterator para iterar.