こんにちは。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で処理を終わらせられるでしょうか。
ご教授下さい。