Если вы используете уценку, вы явно обозначаете уровни заголовков.Например,
# Heading 1
## Heading 2
соответствует
<h1>Heading 1</h1>
<h2>Heading 2</h2>
Если вы хотите начать с заголовка два, просто используйте ## везде, где вы чрезмерно используете #.
Если вы хотите сделать это автоматически, я полагаю, у вас может быть фильтр типа
re.sub('#+', lambda m: m.group()+'#', text)
, чтобы сдвинуть все заголовки вниз на один уровень, прежде чем перейти к уценке.