code: def _all_unique_texts(text, final):
      
      if not char_opening in text:
          if not text in final:
              final.append(text)
          return
  
      stack = []
      indexes = []
      for i, c in enumerate(text):
          if c == char_closing:
              if stack[-1] == char_opening:
                  start_index = indexes.pop()
                  substring = '' if i == start_index + 1 else text[start_index:i + 1]
                  # get some random combination
                  combination = next(_choices(substring))
                  new_text = text.replace(substring, combination)
                  _all_unique_texts(new_text, final)
                  return
          elif c == char_opening:
              stack.append(c)
              indexes.append(i)
docs: Compute all the possible unique texts
  
      @type text: str
      @param text: Text written used spin syntax
  
      @type final: list
      @param final: An empty list where all the unique texts will be stored
      @return: Nothing. The result will be in the 'final' list