### 254. Factor Combinations

Numbers can be regarded as the product of their factors.
For example, 8 = 2 x 2 x 2 = 2 x 4.
Given an integer n, return all possible combinations of its factors. You may return the answer in any order.
Note that the factors should be in the range [2, n - 1].

def getFactors(self, n):
factorizations = []

def backtrack(candidate, prev_factor, reminder):
if len(candidate):
factorizations.append(candidate + [reminder])

for factor in range(prev_factor, int(reminder ** .5) + 1):
if reminder % factor == 0:
candidate.append(factor)
backtrack(candidate, factor, reminder // factor)
candidate.pop()

backtrack([], 2, n)

return factorizations