```
def getFactors(self, n):
ret = []
self.dfs(n, [], ret)
return ret
def dfs(self, left, cur, ret):
if cur and cur == sorted(cur):
ret.append(cur +[left])
for i in range(2, int(left**0.5)+1):
if left % i == 0:
cur.append(i)
self.dfs(left // i, cur, ret)
cur.pop()
```