Combinador

Crie uma função que, dada uma lista de listas de strings, retorne uma lista com todas as combinações na forma de strings concatenadas.

  1. A função é chamada com uma lista de listas contendo strings.
  2. A tarefa consiste em combinar cada string de cada lista com cada string das demais listas.
  3. Se uma das listas de strings estiver vazia, a função retornará uma lista vazia.

A função aceitará um segundo parâmetro opcional do tipo string. Esse parâmetro, se especificado, deverá ser usado para combinar duas strings.

Exemplos

combinator([["a", "b"], ["c", "d"]]) ➞ ["ac", "ad", "bc", "bd"]

combinator([["a"], ["a", "b"], "abc"]) ➞ ["aaa", "aab", "aac", "aba", "abb", "abc"]

combinator([["foo", "bar"], ["baz", "bamboo"]], " ") ➞ ["foo baz", "foo bamboo", "bar baz", "bar bamboo"]

combinator([[]]) ➞ []

Observações

  • A ordem das strings fornecidas deve ser mantida nas combinações.
  • Você pode presumir que:
    • A função sempre é chamada com uma lista de listas de strings, e as listas podem estar vazias.