JSFiddle - React, Tailwind, and code Playground
JavaScript
let arr = [],
y, x;
let permute = function(str, l, r) {
if (l === r) {
arr.push(str);
} else {
for (let i = l; i <= r; i++) {
x = str[i];
y = str[l];
str[i] = y;
str[l] = x;
permute(str, l + 1, r);
x = str[i];
y = str[l];
str[i] = y;
str[l] = x;
}
}
};
permute('aab', 0, 'aab'.length - 1);
console.log(arr);