We consider the problem of dynamic coalition formation among a set of agents where the value function of the agents is constrained by the size of a coalition - larger coalitions are able to get higher value but only up to a certain fixed coalition size, denoted by nmax. The objective of the coalition formation problem is to determine a partition of the agent set that gives the highest utility to the agents. This problem is non-trivial as the set of partitions that needs to be explored grows exponentially with the number of agents and an exhaustive search in the space of partitions makes the problem intractable. To address this problem, we first provide a formal framework to model the coalition formation problem using a coalition structure graph (CSG). We then propose a branch and bound-based algorithm called bottom Up CSG Search that searches for the optimal partitions or coalition structures among the nodes of CSG while pruning nodes that are not going to lead to the optimal coalition structure. We have provided analytical results related to the completeness, anytime-nature and time complexity of our algorithm. We have also verified the performance of our algorithm for a dynamic reformation problem where a set of physical e-puck robots starting from arbitrary positions form sub-teams that maximize their utility. Our experimental results show that our proposed algorithm performs better in terms of number of nodes generated and the time required to find the optimal coalition structure or partition than existing CSG-search algorithms.