This work concerns the assortment optimization problem that refers to selecting a subset of items that maximizes the expected revenue in the presence of the substitution behavior of consumers specified by a parametric choice model. The key challenge lies in the computational difficulty of finding the best subset solution, which often requires exhaustive search. The literature on constrained assortment optimization lacks a practically efficient method that is general to deal with different types of parametric choice models (e.g., the multinomial logit, mixed logit or general multivariate extreme value models). In this paper, we propose a new approach that allows to address this issue. The idea is that, under a general parametric choice model, we formulate the problem into a binary nonlinear programming model, and use an iterative algorithm to find a binary solution. At each iteration, we propose a way to approximate the objective (expected revenue) by a linear function, and a polynomial-time algorithm to find a candidate solution using this approximate function. We also develop a greedy local search algorithm to further improve the solutions. We test our algorithm on instances of different sizes under various parametric choice model structures and show that our algorithm dominates existing exact and heuristic approaches in the literature, in terms of solution quality and computing cost.