Letras embaralhadas

Dado um array de letras disponíveis, um dicionário de palavras e uma máscara, retorne as palavras que podem ser formadas com essas letras e correspondem à máscara. Uma palavra correspondente tem o mesmo comprimento que a máscara e corresponde a cada posição que não seja um asterisco; cada * corresponde a um caractere. Ordene o resultado alfabeticamente.

Exemplos

scrambled(['e', 'c', 'd', 'r', 'e', 'e'], [”red”, “dee”, “cede”, “reed”, “creed”, “decree”], “*re**”) ➞ [“creed”]

scrambled(['e', 'c', 'd', 'r', 'e', 'e'], [”red”, “dee”, “cede”, “reed”, “creed”, “decree”], “***”) ➞ [“dee”, “red”]

Notas

O comprimento de uma máscara nunca excederá o número de letras fornecidas (nem o comprimento da palavra mais longa do dicionário).