Skip to content

Instantly share code, notes, and snippets.

@higuma
higuma / ArrayPermutation.js
Last active September 8, 2023 10:15
JavaScript Array permutation generator
// JavaScript Array permutation generator
// (optimized from CoffeeScript output: see ArrayPermutation.coffee)
(function() {
var generatePermutation = function(perm, pre, post, n) {
var elem, i, rest, len;
if (n > 0)
for (i = 0, len = post.length; i < len; ++i) {
rest = post.slice(0);
elem = rest.splice(i, 1);
generatePermutation(perm, pre.concat(elem), rest, n - 1);
@higuma
higuma / ArrayPermutation.coffee
Last active December 18, 2015 13:02
CoffeeScript Array permutation generator
# internal: generate permutation recursively
generatePermutation = (perm, pre, post, n) ->
if n > 0
for i in [0...post.length]
rest = post.slice 0
elem = rest.splice i, 1
generatePermutation perm, pre.concat(elem), rest, n - 1
else
perm.push pre
return