We show that some recent results in slicing of a distributed computation can be applied to developing algorithms to solve problems in combinatorics. A combinatorial problem usually requires enumerating, counting or ascertaining existence of structures that satisfy a given property $B$. We cast the combinatorial problem as a distributed computation such that there is a bijection between combinatorial structures satisfying $B$ and the global states that satisfy a property equivalent to $B$. We then apply results in slicing a computation with respect to a predicate to obtain a small representation of only those global states that satisfy $B$. The slicing results are based on a generalization of Birkhoff's Theorem of representation of finite distributive lattices. This gives us an efficient (polynomial time) algorithm to enumerate, count or detect structures that satisfy $B$ when the total set of structures is large but the set of structures satisfying $B$ is small. We illustrate our techniques by analyzing problems in integer partitions, set families, and set of permutations.