JSFiddle - React, Tailwind, and code Playground
JavaScript
function stringPermutations(str) {
let letters = str.split('');
let results = [[letters.shift()]]
console.log(letters);
while (letters.length) {
const currLetter = letters.shift()
let tmpResults = []
results.forEach(result => {
let rIdx = 0
while (rIdx <= result.length) {
const tmp = [...result]
tmp.splice(rIdx, 0, currLetter)
tmpResults.push(tmp)
rIdx++
}
})
results = tmpResults
}
return results
.map(letterArray => letterArray.join(''))
.filter((el, idx, self) => (self.indexOf(el) === idx))
.sort()
}
console.log(stringPermutations('1234'));