add recursion deepin function