def permitido_variacao(self, base, perfil_pk=None):

        perfil = PerfilEstruturalTextoArticulado.objects.all()
        if not perfil_pk:
            perfil = perfil.filter(padrao=True)

        else:
            perfil = perfil.filter(pk=perfil_pk)

        if not perfil.exists():
            return False

        perfil = perfil[0]

        while perfil:
            pp = self.possiveis_pais.filter(pai=base, perfil=perfil)
            if pp.exists():
                if pp[0].permitir_variacao:
                    return True
            perfil = perfil.parent
        return False