def python_obj_to_markdown(
python_obj: Any,
markdown_str: str = '',
level: int = 2
) -> str:
if isinstance(python_obj, dict):
for key, value in python_obj.items():
if level <= 6:
markdown_str += f'{"#" * level} {key}\n\n'
else:
markdown_str += f'**{key}**\n\n'
if isinstance(value, dict):
markdown_str = python_obj_to_markdown(value, markdown_str, level + 1)
elif isinstance(value, list):
for item in value:
markdown_str = python_obj_to_markdown(item, markdown_str, level + 1)
else:
markdown_str += f'{value}\n\n'
elif isinstance(python_obj, Iterable) and not isinstance(python_obj, str):
for item in python_obj:
markdown_str = python_obj_to_markdown(item, markdown_str, level)
else:
markdown_str += f'{python_obj}\n\n'
return markdown_str