String permutations recursive
by Alex Myronov
JavaScript
function permutateStr(str) {
if (str.length <= 1) {
return [str]
}
const current = str[0]
const permutated = permutateStr(str.slice(1))
const permutations = []
permutated.forEach((permutation) => {
for (let i = 0; i <= permutation.length; i++) {
permutations.push(
`${permutation.slice(0, i)}${current}${permutation.slice(i)}`
)
}
})
return permutations
}
console.log(permutateStr('cats'))