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'));