public static <T> java.util.List<java.util.List<T>> subsequences(java.util.List<T> list)
Given a list of objects, return a list of sublists, i-th sublist includes i-th element of
the original list and all elements that follow it in the original list.
All returned lists are read-only and backed by a copy of the original list, so later changes
in the original list will not affect the returned sublists.