इस खंड में हम देखेंगे कि किसी भी लम्बाई के सभी संभावित तार कैसे उत्पन्न होते हैं, यह स्ट्रिंग बनाने के लिए वर्णों के प्रत्येक संयोजन को ले जाएगा। उदाहरण के लिए, यदि स्ट्रिंग एबीसी है, तो यह उत्पन्न करेगी - {ए, बी, सी, एबी, बीए, बीसी, सीबी, सीए, एसी, एबीसी, एसीबी, बीएसी, बीसीए, सीएबी, सीबीए}
आइए विचार प्राप्त करने के लिए उदाहरण देखें।
एल्गोरिदम
प्रिंटऑलस्ट्रिंग(str)
आरंभ n :=स्ट्रिंग की लंबाई str गिनती 2^n-1 है, प्रत्येक संख्या 0 को गिनने के लिए, sub_str करें:=0 से n की श्रेणी में j के लिए खाली स्ट्रिंग करें, यदि काउंटर का jth बिट सेट है, तो करें, फिर सब_स्ट्र एंड के साथ स्ट्र के जेटीएच कैरेक्टर को रिपीट करें अगर रिपीट किया जाए:सब_स्ट्रिंग को प्रिंट करें जब तक कि सब_स्ट्रिंग का अगला क्रमपरिवर्तन पूरा न हो जाएएंड
उदाहरण
#शामिल करें अहस्ताक्षरित इंट गिनती =पाउ (2, एन); के लिए (इंट काउंटर =1; काउंटर <गिनती; काउंटर ++) {// जनरेट 2 ^ एन - 1 स्ट्रिंग्स स्ट्रिंग सब =""; के लिए (int j =0; jआउटपुट
ABABBACACCABCCBABCACBBACBCACABCBADDABDDBABDADBDADBDADABDBACDDCACDADCCADCDADACDCABCDBDCCBDCDBDBCDCBABCDABDCACBDACDBADBCADCBBACDBACDBCCADBCDABDACBDCABDCABDCADBCBADCBDACDABCDBADABCDACBDCBADBCADC