May 18,2007:
May 18,2007:
There is a sample of exhaustive a char dictionary.
 import
      
      
         java.util.regex.Matcher;
      
        import
      
      
         java.util.regex.Matcher;
         import
      
      
         java.util.regex.Pattern;
      
      
        import
      
      
         java.util.regex.Pattern;
         import
      
      
         java.util.
      
      
        *
      
      
        ;
      
      
        import
      
      
         java.util.
      
      
        *
      
      
        ;
         
         public
      
      
         
      
      
        class
      
      
         Test
      
      
      
        
          {
        
      
      
        public
      
      
         
      
      
        class
      
      
         Test
      
      
      
        
          {
           public
        
        
           
        
        
          static
        
        
           
        
        
          void
        
        
           main(String args[])
        
        
        
          
            {
          
              
        
        
          public
        
        
           
        
        
          static
        
        
           
        
        
          void
        
        
           main(String args[])
        
        
        
          
            {
             new
          
          
             Test();
                    
          
          
            new
          
          
             Test();
             }
                }
          
        
        
           
              
           String[] chars 
        
        
          =
        
        
           
        
        
        
          
            {
          
          
            "
          
          
            a
          
          
            "
          
          
            ,
          
          
            "
          
          
            b
          
          
            "
          
          
            ,
          
          
            "
          
          
            c
          
          
            "
          
          
            }
          
        
        
          ;        
        
        
          //
        
        
          This string array is use to stored char dictionary.
          
              String[] chars 
        
        
          =
        
        
           
        
        
        
          
            {
          
          
            "
          
          
            a
          
          
            "
          
          
            ,
          
          
            "
          
          
            b
          
          
            "
          
          
            ,
          
          
            "
          
          
            c
          
          
            "
          
          
            }
          
        
        
          ;        
        
        
          //
        
        
          This string array is use to stored char dictionary.
        
        
           String patternStr
        
        
          =
        
        
           
        
        
          "
        
        
          [a-z][a-z][a-z]
        
        
          "
        
        
          ;  
        
        
          //
        
        
          Defined regularexpression to match traverse/ergod result
        
        
              String patternStr
        
        
          =
        
        
           
        
        
          "
        
        
          [a-z][a-z][a-z]
        
        
          "
        
        
          ;  
        
        
          //
        
        
          Defined regularexpression to match traverse/ergod result
        
        
           String output 
        
        
          =
        
        
           
        
        
          ""
        
        
          ;
        
        
              String output 
        
        
          =
        
        
           
        
        
          ""
        
        
          ;
           Set set 
        
        
          =
        
        
           
        
        
          new
        
        
           TreeSet();               
        
        
          //
        
        
          Set store distinct record into is reason for/why defined a tree set rather then array list.
              Set set 
        
        
          =
        
        
           
        
        
          new
        
        
           TreeSet();               
        
        
          //
        
        
          Set store distinct record into is reason for/why defined a tree set rather then array list.
        
        
           Pattern pattern 
        
        
          =
        
        
           Pattern.compile(patternStr);
        
        
              Pattern pattern 
        
        
          =
        
        
           Pattern.compile(patternStr);
           
              
           
              
           public
        
        
           Test()
        
        
        
          
            {
          
              
        
        
          public
        
        
           Test()
        
        
        
          
            {
             int
          
          
             j
          
          
            =
          
          
             chars.length;
                    
          
          
            int
          
          
             j
          
          
            =
          
          
             chars.length;
             
                    
             
                    
             search(
          
          
            0
          
          
            ,chars,output);
                    search(
          
          
            0
          
          
            ,chars,output);
             
                    
             for
          
          
            (Iterator it 
          
          
            =
          
          
             set.iterator();it.hasNext();)
          
          
          
            
              {
            
                    
          
          
            for
          
          
            (Iterator it 
          
          
            =
          
          
             set.iterator();it.hasNext();)
          
          
          
            
              {
               System.out.println(it.next());
                          System.out.println(it.next());
               }
                      }
            
          
          
             }
                }
          
        
        
           
           public
        
        
           
        
        
          void
        
        
           search(
        
        
          int
        
        
           i,String[] chs,String output)
        
        
        
          
            {
          
              
        
        
          public
        
        
           
        
        
          void
        
        
           search(
        
        
          int
        
        
           i,String[] chs,String output)
        
        
        
          
            {
             if
          
          
            (i
          
          
            ==
          
          
            chars.length)
          
          
          
            
              {
            
                    
          
          
            if
          
          
            (i
          
          
            ==
          
          
            chars.length)
          
          
          
            
              {
               Matcher matcher 
            
            
              =
            
            
               pattern.matcher(output);
                          Matcher matcher 
            
            
              =
            
            
               pattern.matcher(output);
               if
            
            
              (matcher.matches())
            
            
            
              
                {
              
                          
            
            
              if
            
            
              (matcher.matches())
            
            
            
              
                {
                 set.add(output);
                                set.add(output);
                 }
                            }
              
            
            
               return
            
            
              ;
                          
            
            
              return
            
            
              ;
               }
                      }
            
          
          
             for
          
          
            (
          
          
            int
          
          
             j 
          
          
            =
          
          
            0
          
          
            ; j
          
          
            <
          
          
            chars.length;j
          
          
            ++
          
          
            )
          
          
          
            
              {                 
            
            
              //
            
            
              ergod the char dictionary
            
                    
          
          
            for
          
          
            (
          
          
            int
          
          
             j 
          
          
            =
          
          
            0
          
          
            ; j
          
          
            <
          
          
            chars.length;j
          
          
            ++
          
          
            )
          
          
          
            
              {                 
            
            
              //
            
            
              ergod the char dictionary
            
            
               output 
            
            
              =
            
            
               output
            
            
              +
            
            
              chs[j];
            
            
                          output 
            
            
              =
            
            
               output
            
            
              +
            
            
              chs[j];
               search(i
            
            
              +
            
            
              1
            
            
              ,chs,output);
                          search(i
            
            
              +
            
            
              1
            
            
              ,chs,output);
               output 
            
            
              =
            
            
               output.substring(
            
            
              0
            
            
              ,output.length()
            
            
              -
            
            
              1
            
            
              );
                          output 
            
            
              =
            
            
               output.substring(
            
            
              0
            
            
              ,output.length()
            
            
              -
            
            
              1
            
            
              );
               search(i
            
            
              +
            
            
              1
            
            
              ,chs,output);
                          search(i
            
            
              +
            
            
              1
            
            
              ,chs,output);
               }
                      }
            
          
          
             }
                }
          
        
        
           }
          }
        
      
     import
      
      
         java.util.regex.Matcher;
      
        import
      
      
         java.util.regex.Matcher;
         import
      
      
         java.util.regex.Pattern;
      
      
        import
      
      
         java.util.regex.Pattern;
         import
      
      
         java.util.
      
      
        *
      
      
        ;
      
      
        import
      
      
         java.util.
      
      
        *
      
      
        ;
         
         public
      
      
         
      
      
        class
      
      
         Test
      
      
      
        
          {
        
      
      
        public
      
      
         
      
      
        class
      
      
         Test
      
      
      
        
          {
           public
        
        
           
        
        
          static
        
        
           
        
        
          void
        
        
           main(String args[])
        
        
        
          
            {
          
              
        
        
          public
        
        
           
        
        
          static
        
        
           
        
        
          void
        
        
           main(String args[])
        
        
        
          
            {
             new
          
          
             Test();
                    
          
          
            new
          
          
             Test();
             }
                }
          
        
        
           
              
           String[] chars 
        
        
          =
        
        
           
        
        
        
          
            {
          
          
            "
          
          
            a
          
          
            "
          
          
            ,
          
          
            "
          
          
            b
          
          
            "
          
          
            ,
          
          
            "
          
          
            c
          
          
            "
          
          
            }
          
        
        
          ;        
        
        
          //
        
        
          This string array is use to stored char dictionary.
          
              String[] chars 
        
        
          =
        
        
           
        
        
        
          
            {
          
          
            "
          
          
            a
          
          
            "
          
          
            ,
          
          
            "
          
          
            b
          
          
            "
          
          
            ,
          
          
            "
          
          
            c
          
          
            "
          
          
            }
          
        
        
          ;        
        
        
          //
        
        
          This string array is use to stored char dictionary.
        
        
           String patternStr
        
        
          =
        
        
           
        
        
          "
        
        
          [a-z][a-z][a-z]
        
        
          "
        
        
          ;  
        
        
          //
        
        
          Defined regularexpression to match traverse/ergod result
        
        
              String patternStr
        
        
          =
        
        
           
        
        
          "
        
        
          [a-z][a-z][a-z]
        
        
          "
        
        
          ;  
        
        
          //
        
        
          Defined regularexpression to match traverse/ergod result
        
        
           String output 
        
        
          =
        
        
           
        
        
          ""
        
        
          ;
        
        
              String output 
        
        
          =
        
        
           
        
        
          ""
        
        
          ;
           Set set 
        
        
          =
        
        
           
        
        
          new
        
        
           TreeSet();               
        
        
          //
        
        
          Set store distinct record into is reason for/why defined a tree set rather then array list.
              Set set 
        
        
          =
        
        
           
        
        
          new
        
        
           TreeSet();               
        
        
          //
        
        
          Set store distinct record into is reason for/why defined a tree set rather then array list.
        
        
           Pattern pattern 
        
        
          =
        
        
           Pattern.compile(patternStr);
        
        
              Pattern pattern 
        
        
          =
        
        
           Pattern.compile(patternStr);
           
              
           
              
           public
        
        
           Test()
        
        
        
          
            {
          
              
        
        
          public
        
        
           Test()
        
        
        
          
            {
             int
          
          
             j
          
          
            =
          
          
             chars.length;
                    
          
          
            int
          
          
             j
          
          
            =
          
          
             chars.length;
             
                    
             
                    
             search(
          
          
            0
          
          
            ,chars,output);
                    search(
          
          
            0
          
          
            ,chars,output);
             
                    
             for
          
          
            (Iterator it 
          
          
            =
          
          
             set.iterator();it.hasNext();)
          
          
          
            
              {
            
                    
          
          
            for
          
          
            (Iterator it 
          
          
            =
          
          
             set.iterator();it.hasNext();)
          
          
          
            
              {
               System.out.println(it.next());
                          System.out.println(it.next());
               }
                      }
            
          
          
             }
                }
          
        
        
           
           public
        
        
           
        
        
          void
        
        
           search(
        
        
          int
        
        
           i,String[] chs,String output)
        
        
        
          
            {
          
              
        
        
          public
        
        
           
        
        
          void
        
        
           search(
        
        
          int
        
        
           i,String[] chs,String output)
        
        
        
          
            {
             if
          
          
            (i
          
          
            ==
          
          
            chars.length)
          
          
          
            
              {
            
                    
          
          
            if
          
          
            (i
          
          
            ==
          
          
            chars.length)
          
          
          
            
              {
               Matcher matcher 
            
            
              =
            
            
               pattern.matcher(output);
                          Matcher matcher 
            
            
              =
            
            
               pattern.matcher(output);
               if
            
            
              (matcher.matches())
            
            
            
              
                {
              
                          
            
            
              if
            
            
              (matcher.matches())
            
            
            
              
                {
                 set.add(output);
                                set.add(output);
                 }
                            }
              
            
            
               return
            
            
              ;
                          
            
            
              return
            
            
              ;
               }
                      }
            
          
          
             for
          
          
            (
          
          
            int
          
          
             j 
          
          
            =
          
          
            0
          
          
            ; j
          
          
            <
          
          
            chars.length;j
          
          
            ++
          
          
            )
          
          
          
            
              {                 
            
            
              //
            
            
              ergod the char dictionary
            
                    
          
          
            for
          
          
            (
          
          
            int
          
          
             j 
          
          
            =
          
          
            0
          
          
            ; j
          
          
            <
          
          
            chars.length;j
          
          
            ++
          
          
            )
          
          
          
            
              {                 
            
            
              //
            
            
              ergod the char dictionary
            
            
               output 
            
            
              =
            
            
               output
            
            
              +
            
            
              chs[j];
            
            
                          output 
            
            
              =
            
            
               output
            
            
              +
            
            
              chs[j];
               search(i
            
            
              +
            
            
              1
            
            
              ,chs,output);
                          search(i
            
            
              +
            
            
              1
            
            
              ,chs,output);
               output 
            
            
              =
            
            
               output.substring(
            
            
              0
            
            
              ,output.length()
            
            
              -
            
            
              1
            
            
              );
                          output 
            
            
              =
            
            
               output.substring(
            
            
              0
            
            
              ,output.length()
            
            
              -
            
            
              1
            
            
              );
               search(i
            
            
              +
            
            
              1
            
            
              ,chs,output);
                          search(i
            
            
              +
            
            
              1
            
            
              ,chs,output);
               }
                      }
            
          
          
             }
                }
          
        
        
           }
          }
        
      
    


 
       
              
         
					 
					