Результат будет в порядке. Вам просто нужно вывести результат, потому что порядок результатов такой же, как в html
from bs4 import BeautifulSoup
html = """
<div class = "hAyfc">
<div class = "BgcNfc">pro </div>
<span class = "htlgb">
<div>
<span class = "htlgb">
codeA
</span>
</div>
</span>
</div>
<div class = "hAyfc">
<div class = "BgcNfc">pro </div>
<span class = "htlgb">
<div>
<span class = "htlgb">
codeB
</span>
</div>
</span>
</div>
"""
bs = BeautifulSoup(html,"lxml")
result = [e.text for e in bs.find_all("div",{"class":"hAyfc"})]
print(result)