Gerar endereços IP válidos

A função recebe uma string composta por dígitos. Crie uma função que gere um conjunto de todos os endereços IP válidos possíveis usando todos os dígitos. O endereço tem quatro grupos. Cada grupo é um número de 0 a 255, inclusive; o número não pode ter zeros à esquerda, a menos que seja igual a zero.

Por exemplo, "0.1.2.201" e "192.168.1.1" são endereços IP válidos, enquanto "3.011.255.245" e "192.168.1.312" são endereços IP inválidos. Se nenhum endereço individual puder ser produzido, retorne um conjunto vazio.

Exemplos

generate_ip_addresses("0101203") ➞ {"0.101.20.3", "0.10.120.3", "0.10.1.203"}

generate_ip_addresses("25525511135") ➞ {"255.255.11.135", "255.255.111.35"}

generate_ip_addresses("0000") ➞ {"0.0.0.0"}

generate_ip_addresses("010010") ➞ {"0.10.0.10", "0.100.1.0"}

Observações

N/A