¿Os.listdir recursivo?

Me gustaría obtener una lista de todos los archivos en un directorio de forma recursiva, sin directorios.

Digamos que hay un directorio ~/files con “a.txt”, “b.txt”, y un directorio “c” con “d.txt” y “e” dentro, y “f.txt” dentro de e. ¿Cómo puedo obtener una lista que se vea como ['/home/user/files/a.txt', '/home/user/files/b.txt', '/home/user/files/c/d.txt', '/home/user/files/c/e/f.txt'] ?

 import os [os.path.join(dp, f) for dp, dn, fn in os.walk(os.path.expanduser("~/files")) for f in fn]