An original algorithm is presented that generates both restricted integer compositions and restricted integer partitions that can be constrained simultaneously by a) upper and lower bounds on the number of summands ("parts") allowed, and b) upper and lower bounds on the values of those parts. The algorithm can implement each constraint individually, or no constraints to generate unrestricted sets of integer compositions or partitions. The algorithm is recursive, based directly on very fundamental mathematical constructs, and given its generality, reasonably fast with good time complexity. A general, closed form solution to the open problem of counting the number of integer compositions doubly restricted in this manner also is presented; its formulaic link to an analogous solution for counting doubly-restricted integer partitions is shown to mirror the algorithmic link between these two objects. Mathematics Subject Classifications: 05A07, 11P82, 11Y16, 11Y55