permutations - nodef/extra-array GitHub Wiki

Obtain all possible permutations.

Alternatives: ipermutations, permutations. Similar: randomPermutation, permutations, hasPermutation.

function permutations(x, n)
// x: an array
// n: number of values [-1 ⇒ any]
const xarray = require('extra-array');

xarray.permutations([1, 2]);
// → [ [], [ 1 ], [ 2 ], [ 1, 2 ], [ 2, 1 ] ]

xarray.permutations([1, 2, 3]);
// → [
//   [],          [ 1 ],
//   [ 2 ],       [ 3 ],
//   [ 1, 2 ],    [ 1, 3 ],
//   [ 2, 1 ],    [ 2, 3 ],
//   [ 3, 1 ],    [ 3, 2 ],
//   [ 1, 2, 3 ], [ 1, 3, 2 ],
//   [ 2, 1, 3 ], [ 2, 3, 1 ],
//   [ 3, 1, 2 ], [ 3, 2, 1 ]
// ]

xarray.permutations([1, 2, 3], 2);
// → [ [ 1, 2 ], [ 1, 3 ], [ 2, 1 ], [ 2, 3 ], [ 3, 1 ], [ 3, 2 ] ]

References