A branch-and-price framework to solve a class of assortment problems