Есть множества A_1, A_2, ..., A_k, нужно сгенерировать случайный список длины n из их элементов, причём из каждого множества в списке должен быть хотя бы один элементов. Как такое сделать эффективно? Пока в голову пришло сгенерировать первые k символов, i-ты символ из A_i, потом сгенерировать остальную часть из объединения множеств и перемешать список. Но это неэффективно