python3で深さ優先探索の再帰関数が上手く機能しない
こんにちは。python3で作ったこちらの再帰関数が上手く機能しません。
    def func(teleports_string):
        strings = [{n[0],n[1]} for n in teleports_string.split(',')]
        start = {'1'}
        def search(strings,point,totalpoint):
            for string in strings:
                if point <= string and not string.difference(point) <= totalpoint:
                    if len(totalpoint.union(point)) >= 7:
                        print(totalpoint)
                        return totalpoint
                    search(strings,string.difference(point),totalpoint.union(string))
        return search(strings,start,set())
func("12,23,34,45,56,67,78,81")
上記のコードの
return totalpoint
の行でtotalpointを戻り値として処理を終了させたいのですが、
残りの処理を始めてしまいます。
どのようにすれば、return totalpointで処理を終わらせられるでしょうか。
ご教授下さい。