JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

JavaScript

function permut(string) {

    if (string.length < 2) return string;
    
    var permutations = [];

    for (var i = 0; i < string.length; i++) {
        var char = string[i];
        console.log(`char`, char);

        // skip duplicates
        if (string.indexOf(char) !== i) continue;

        var remainingString = string.slice(0, i) + string.slice(i + 1, string.length);
        
        console.log(`remaining string:`, remainingString);

        for (var subPermutation of permut(remainingString)) {
          permutations.push(char + subPermutation)
        }
    }
    console.log(permutations);
    return permutations;
}

var myString = "121";
permutations = permut(myString);
/* for (permutation of permutations) console.log(permutation) */