Create permutations for an array using javascript
//create permutations for elements of an array
const permutations = (arr) => {
if( arr.length === 0 ) return [[]];
let firstElement = arr.slice(0,1);
let restElements = arr.slice(1);
let restPerms = permutations(restElements);
let allPermutations = [];
restPerms.forEach( perm => {
for( let i = 0; i <= perm.length; i++ ) {
let withFirstPerms = [...perm.slice(0,i), firstElement, ...perm.slice(i)];
allPermutations.push(withFirstPerms);
}
});
return allPermutations.map(element => [].concat(...element));
};
console.log(permutations(['a','b','c']));
console.log(permutations(['a','b']));