Вы можете использовать os.walk()
для рекурсивной итерации по каталогу и всем его подкаталогам:
for root, dirs, files in os.walk(path):
for name in files:
if name.endswith((".html", ".htm")):
# whatever
Чтобы создать список этих имен, вы можете использовать понимание списка:
htmlfiles = [os.path.join(root, name)
for root, dirs, files in os.walk(path)
for name in files
if name.endswith((".html", ".htm"))]