Python - Localizando chaves pai para um valor específico em um dicionário aninhado

Eu estou lutando para processar um dicionário aninhado e retornar as chaves pai aninhadas, para um valor específico, quando o valor pode existir mais de uma vez no dicionário aninhado. Por exemplo:

example_dict = { 'key1' : 'value1',
                 'key2' : 'value2',
                 'key3' : { 'key3a': 'value3a' },
                 'key4' : { 'key4a': { 'key4aa': 'value4aa',
                                       'key4ab': 'value4ab',
                                       'key4ac': 'value1'},
                            'key4b': 'value4b'}
                }

Você notará que 'value1' aparece duas vezes no dicionário acima e gostaria de criar uma função que retorne uma única lista ou uma série de listas que identifiquem as diferentes chaves principais, que nesse caso seriam 'key1' 'e (' key4 ',' key4a ', key4ac).

Esse tipo de problema foi tratado em outras partes deste site, quando o Value one estava procurando apenas apareceu uma vez e foi prontamente manipulado pela seguinte função recursiva:

def find_key(d,key):
    for k,v in d.items():
        if isinstance(v,dict):
            p = find_key(v,key)
            if p:
                return [k] + p
        elif v == key:
            return [k]

print find_key(example_dict,'value4ac').

Se você executar o código acima no dicionário, só receberei uma resposta para as chaves pai. Qualquer ajuda seria muito apreciada, obrigado!

questionAnswers(2)

yourAnswerToTheQuestion