code: def get_string_variations(
      string,
      language,
      builtin_entity_parser,
      numbers=True,
      case=True,
      and_=True,
      punctuation=True,
  ):
      variations = {string}
      if case:
          variations.update(
              flatten(case_variations(v) for v in variations)
          )
  
      variations.update(
          flatten(normalization_variations(v) for v in variations)
      )
      # We re-generate case variations as normalization can produce new
      # variations
      if case:
          variations.update(
              flatten(case_variations(v) for v in variations)
          )
      if and_:
          variations.update(
              flatten(and_variations(v, language) for v in variations)
          )
      if punctuation:
          variations.update(
              flatten(
                  punctuation_variations(v, language)
                  for v in variations
              )
          )
  
      # Special case of number variation which are long to generate due to the
      # BuilinEntityParser running on each variation
      if numbers:
          variations.update(
              flatten(
                  numbers_variations(v, language, builtin_entity_parser)
                  for v in variations
              )
          )
  
      # Add single space variations
      single_space_variations = set(
          " ".join(v.split()) for v in variations
      )
      variations.update(single_space_variations)
      # Add tokenized variations
      tokenized_variations = set(
          get_default_sep(language).join(tokenize_light(v, language))
          for v in variations
      )
      variations.update(tokenized_variations)
      return variations
  
file_path: snips-nlu/snips_nlu/string_variations.py
imports: from __future__ import unicode_literals
  import itertools
  import re
  from builtins import range, str, zip
  from future.utils import iteritems
  from snips_nlu.constants import END, LANGUAGE_DE, LANGUAGE_EN, LANGUAGE_ES, LANGUAGE_FR, RESOLVED_VALUE, RES_MATCH_RANGE, SNIPS_NUMBER, START, VALUE
  from snips_nlu.languages import get_default_sep, get_punctuation_regex, supports_num2words
  from snips_nlu.preprocessing import tokenize_light
label_desc: Use image node_id 10 for calling a global function with example usage: get_string_variations(string, language, builtin_entity_parser, numbers, case, and_, punctuation) and returns: variations