Find list of tickets with best price sum
If you wanted to solve it in practice, I would recommend that you try using an ILP solver.  You can express this as an instance of integer linear programming, then use an off-the-shelf ILP solver.
Introduce zero-or-one variables $x_i$ (indicates whether the $i$th ticket is bought or not) and $y_{ij}$ (indicates whether the $i$th ticket is used to cover the $j$th trip).  Then you can write linear inequalities to express the requirements; e.g., $\sum_j y_{ij} \le d_i x_i$ where $d_i$ is the max duration of ticket $i$, and so on.  The total price is a linear function of the variables, so you can minimize that objective function, subject to these inequalities.
I don't know whether there is a more efficient algorithm.