Solves problem

        :param table_size: Size of table
        :return: List of possible solutions

def solve(self, table_size):
        """Solves problem

        :param table_size: Size of table
        :return: List of possible solutions
        """
        if table_size == 0:
            return [[]]

        smaller_solutions = self.solve(table_size - 1)
        solutions = []
        for solution in smaller_solutions:
            for column in range(1, self.board_size + 1):
                # try adding a new queen to row = n, column = column
                if not self.under_attack(column, solution):
                    solutions.append(solution + [(table_size, column)])
        return solutions