Gerar strings diferentes

A função recebe uma string composta por letras e dígitos. Cada letra da string pode ser alterada para minúscula e maiúscula; os dígitos permanecem em suas posições. Gere todas as strings possíveis e retorne-as como um array.

Exemplos

genStrings("1A2") ➞ ["1A2", "1a2"]

genStrings("a1B") ➞ ["A1B", "A1b", "a1B", "a1b"]

genStrings("1a2bC3") ➞ ["1A2Bc3", "1a2Bc3", "1a2bC3", "1a2bc3", "1A2bC3", "1A2BC3", "1a2BC3", "1A2bc3"]

genStrings("1") ➞ ["1"]

genStrings("") ➞ [""]

Observações

Retorne o Array ordenado.