def permute(*argv, into: nil)
    argv = argv[0].dup if (argv.size == 1) && (Array === argv[0])
    permute!(argv, into: into)