JSFiddle - React, Tailwind, and code Playground

by sperske

JavaScript

function gen(n) {
  if (n === 1) {
    return new Set(['()'])
  } else {
    const next = new Set()
    for (const p of gen(n - 1)) {
      next.add('()' + p)
      next.add('(' + p + ')')
      next.add(p + '()')
    }
    return next
  }
}

console.log([...gen(4)])