Python: búsqueda de claves principales para un valor específico en un diccionario anidado

Estoy luchando para procesar un diccionario anidado, y devolver las Claves principales anidadas, para un Valor específico, cuando el Valor puede existir más de una vez en el diccionario anidado. Por ejemplo:

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

Notará que 'value1' aparece dos veces en el diccionario anterior, y me gustaría crear una función que devuelva una sola lista o una serie de listas que identifiquen las diferentes Claves principales, que en este caso sería 'key1 'y (' key4 ',' key4a ', key4ac).

Este tipo de problema se trató en otra parte de este sitio, cuando el valor que buscaba solo apareció una vez, y fue manejado fácilmente por la siguiente función 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').

Si ejecuta el código anterior en el diccionario, solo obtengo una respuesta para las claves principales. Cualquier ayuda sería muy apreciada, gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta