for文の中でcv2.imshow()しているのが原因です。imshowは「最後に表示した1枚」だけが画面に残るので、輪郭ごとに更新しても最終的に最後の輪郭の結果しか見えません。
対処としては、for文の中ではdrawContoursで全部の輪郭を1枚の画像に描き続けて、for文が終わったあとに1回だけimshowしてください。つまりcv2.imshow(‘Path’, img)をforの外に移動します。
また、元画像imgに描くと上書きされるので、表示用にimg.copy()を作ってそこに描くほうが安全です。