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