According to the documentation, the first argument of the find_previous_sibling function can be a list.
find_previous_sibling
list
Have you tried this ?
heading = div.find_previous_sibling(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])