def combine(self, data, length):
    if (length > len(data)):
        return []

    def dfs(data, index, temp_res, res, length):
        if (len(temp_res) == length):
            res.append(temp_res)
            return
        for i in range(index, len(data)):
            temp_res += data[i]
            dfs(data, (i + 1), temp_res, res, length)
            temp_res = temp_res[:(- 1)]
        return res
    return dfs(data, 0, '', [], length)
def combine(self, data, length):
    if (length > len(data)):
        return []

    def dfs(data, index, temp_res, res, length):
        if (len(temp_res) == length):
            res.append(temp_res)
            return
        for i in range(index, len(data)):
            temp_res += data[i]
            dfs(data, (i + 1), temp_res, res, length)
            temp_res = temp_res[:(- 1)]
        return res
    return dfs(data, 0, , [], length)