    # File lib/core/facets/array/permutation.rb, line 13
        def permutation(n=size)
          if size < n or n < 0
          elsif n == 0
            yield([])
          else
            self[1..-1].permutation(n - 1) do |x|
              (0...n).each do |i|
                yield(x[0...i] + [first] + x[i..-1])
              end
            end
            self[1..-1].permutation(n) do |x|
              yield(x)
            end
          end
        end