using UnityEngine; using System.Collections.Generic; namespace ShaderControl { public class StringPerm { public static List> GetCombinations(List items) { List> variants = new List>(); int bitCount = items.Count; int mask = (int)Mathf.Pow(2, bitCount); for (int k = 1; k < mask; k++) { List variant = new List(); int bit = 1; for (int j = 0; j < bitCount; j++, bit <<= 1) { if ((k & bit) != 0) { variant.Add(items[j]); } } variants.Add(variant); } return variants; } } }