### List of combinations from a list of lists in Groovy

Groovy has many useful functions built-in, and one of them is `Iterable.combinations()`

that takes aggregated collections and finds all combinations of items. However, if we take a look its source code, we will find out that it was implemented using very imperative approach (nested for-loops + some if-statement). In this blog post I will show you how to implement the same function using Groovy and tail-recursion algorithm. Enjoy!