Node.js Anagrams Generator
function anagrams(prefix, word) {
if (word === "") return [prefix];
let words = [];
for (let i = 0; i < word.length; i++) {
words = [
...words,
...anagrams(prefix + word[i], word.slice(0, i) + word.slice(i + 1)),
];
}
return words;
}
Usage
console.log(anagrams("", "east"));
/*
[
'east', 'eats', 'esat',
'esta', 'etas', 'etsa',
'aest', 'aets', 'aset',
'aste', 'ates', 'atse',
'seat', 'seta', 'saet',
'sate', 'stea', 'stae',
'teas', 'tesa', 'taes',
'tase', 'tsea', 'tsae'
]
*/