Faça uma função que receba um inteiro n como argumento e retorno uma lista de Abcde, Bcdef, Cdefg, …, Zabcd,
ABcde, BCdef, CDefg, …, ZAbcd,
ABCde, BCDef, CDEfg, …, ZABcd,
ABCDe, BCDEf, CDEFg, …, ZABCd,
ABCDE, BCDEF, CDEFG, … ,ZABCD,
ZBCDE, ZCDEF, ZDEFG, … ,ZZABC,
ZZBCD, ZZCDE, ZZDEF, … ,ZZZAB,
ZZZBC, ZZZCD, ZZZDE, … ,ZZZZA,
ZZZZB, ZZZZC, ZZZZD, … ,ZZZZZ.
A função deve retornar uma lista com todos os strings gerados de tamanho n:
Cabeçalho da função: gera_nomes ( n )
Argumento: n, int: tamanho dos nomes.
Saída: [str]: lista de strings com os nomes de tamanho n.

Passo 1

Beleza, vamos entender o que a questão está pedindo. A gente precisa criar uma função chamada gera_nomes que recebe um número inteiro n. Essa função vai retornar uma lista de strings que seguem um padrão específico com letras do alfabeto. O conteúdo principal aqui envolve manipulação de strings e uso do alfabeto inglês. Vamos precisar conhecer como iterar sobre letras e como gerar combinações seguindo o padrão descrito.

Passo 2

Primeiro, vamos pensar em como representar o alfabeto. Em Python, podemos usar a string "ABCDEFGHIJKLMNOPQRSTUVWXYZ" para ter todas as letras maiúsculas. A gente vai precisar manipular essas letras para criar as sequências solicitadas.

Passo 3

Para gerar as sequências, vamos precisar considerar todas as combinações possíveis de letras com o tamanho n. Já que o padrão envolve “circularidade” no alfabeto (por exemplo, após “Z” vem “A” de novo), precisamos tratar isso para que nossa função não pare no fim do alfabeto.

Passo 4

Vamos usar a ideia de “rotacionar” o alfabeto. Isso significa que, para cada posição inicial, vamos pegar n letras consecutivas, voltando ao início do alfabeto se necessário. Por exemplo, se n=5 e começarmos com “Z”, a sequência seria “ZABCD”.

Passo 5

Para implementar isso, vamos iterar sobre cada letra do alfabeto como ponto de partida. Em cada iteração, vamos pegar as próximas n-1 letras, cuidando para circularmos de volta ao início se ultrapassarmos “Z”. Isso pode ser feito usando o operador módulo % para ficar dentro dos limites do alfabeto.

Passo 6

Vamos juntar essas letras em uma string e adicionar à nossa lista de resultados. No final, vamos ter uma lista com todas as combinações possíveis de tamanho n seguindo o padrão descrito.

Passo 7

Agora, vamos colocar tudo isso em código. Vamos definir a função gera_nomes que implementa essa lógica.

Resposta

A função gera_nomes acima atende ao que foi solicitado, gerando uma lista de strings com o tamanho especificado n seguindo o padrão circular do alfabeto.

Exercícios relacionados

Descreva o problema, as motivações para resolvê-lo e os desafios que exigem o uso de uma solução computacional e a aplicação dos recursos do GeoPandas;
Descreva os principais algoritmos envolvidos na solução proposta;
O programa principal deve apresentar ao usuário um menu com as possibilidades de execução de cada função acima. Além disso, deve fazer a verificação de entrada de cada valor que o usuário tiver que digitar e deve apresentar os resultados de forma adequada e deve esperar que o usuário decida voltar ao menu principal. O menu deve apresentar também a possibilidade de sair do programa principal e, nesse caso, este deve apresentar uma mensagem de fim de execução do programa.
Programe uma função Python que gere uma lista de n
inverte os 2 primeiros dígitos:
inverte os 3 primeiros dígitos:

inverte os 9 dígitos e pára:
A função terá outro argumento inteiro inv que informará o número máximo de dígitos que serão invertidos na geração de \begin{tabular}{r|l}
\hline Cabeçalho da função: & gera_numeros_de_telefone(n,inv) \
\hline Argumento: &
n, int: quantidade de inv, int: quantidade máxima de dígitos a serem invertidos na
geração de
\
\hline Saída: &
([str], bool): tupla com a lista dos n um booleano indicando se foram gerados todos os n telefone
\
\hline
\end{tabular}