Subsets of size k from a generic set

I have a Set<I> where I is an item, for example, {Book, Pencil, Pen, Eraser}.
How can I get subsets of size k from Set<I>?