```
ret = []
def combinationSum3(self, k, n):
self.findTuple(k, n, [], 1)
return self.ret
def findTuple(self, k, n, tmp, start):
if k<0 or n<0:
return
if k==0 and n==0:
if sorted(tmp) not in self.ret:
self.ret.append(sorted(tmp))
return
for cand in range(start, 10):
if cand>n:
break
if cand not in tmp and cand<=n:
temp = copy.deepcopy(tmp)
temp.append(cand)
self.findTuple(k-1, n-cand, temp, cand+1)
```