Универсальный способ с любым набором слов (в пределах размера стека вызова) для составления вариантов комбинаторных перестановок:

function wordsPermutation(words = []) {
  const result = [];

  function handle(words = [], skip = []) {
    for (const word of words) {
      if (skip.includes(word)) {
        continue;
      }

      skip.push(word);
      handle(words, skip);

      if (skip.length === words.length) {
        result.push([...skip]);
      }

      skip.pop();
    }
  }

  handle(words);

  return result;
}

console.log(wordsPermutation(["наша", "Маша", "горько", "плачет"]));