J, 43 bytes
".e.-@-:@#((0<[:".{:\)*[:*/".\)"1 i.@!@#A.]
Takes digits as a string.
For each permutation i.@!@#A.], use half the digit length -@-:@# to take non-overlapping infixes -- which slices into 2 halves -- and multiply those halves([:*/".\)"1. CheckThen (to handle the trailing zero constraint) multiply that by (0<[:".{:\)*, which takes the last digits of each half, cats them, evaluates that as a two digit number, and checks if it's greater than 0.
Finally, check if the input number ". is an element of that list e..
J, 43 bytes
".e.-@-:@#((0<[:".{:\)*[:*/".\)"1 i.@!@#A.]
Takes digits as a string.
For each permutation i.@!@#A.], use half the digit length -@-:@# to take non-overlapping infixes -- which slices into 2 halves -- and multiply those halves([:*/".\)"1. Check if the input number ". is an element of that list e..
J, 43 bytes
".e.-@-:@#((0<[:".{:\)*[:*/".\)"1 i.@!@#A.]
Takes digits as a string.
For each permutation i.@!@#A.], use half the digit length -@-:@# to take non-overlapping infixes -- which slices into 2 halves -- and multiply those halves([:*/".\)"1. Then (to handle the trailing zero constraint) multiply that by (0<[:".{:\)*, which takes the last digits of each half, cats them, evaluates that as a two digit number, and checks if it's greater than 0.
Finally, check if the input number ". is an element of that list e..
J, 4643 bytes
".e.-@-:@#([:((0<[:+/10&|".{:\)***[:*/)".\)"1 i.@!@#A.]
Takes digits as a string.
For each permutation i.@!@#A.], use half the digit length -@-:@# to take non-overlapping infixes -- which slices into 2 halves -- and multiply those halves([:*/".\)"1. Check if the input number ". is an element of that list e..
J, 46 bytes
".e.-@-:@#([:((0<[:+/10&|)**/)".\)"1 i.@!@#A.]
Takes digits as a string.
For each permutation i.@!@#A.], use half the digit length -@-:@# to take non-overlapping infixes -- which slices into 2 halves -- and multiply those halves([:*/".\)"1. Check if the input number ". is an element of that list e..
J, 43 bytes
".e.-@-:@#((0<[:".{:\)*[:*/".\)"1 i.@!@#A.]
Takes digits as a string.
For each permutation i.@!@#A.], use half the digit length -@-:@# to take non-overlapping infixes -- which slices into 2 halves -- and multiply those halves([:*/".\)"1. Check if the input number ". is an element of that list e..
J, 3146 bytes
".e.-@-:@#([:*((0<[:+/10&|)**/)".\)"1 i.@!@#A.]
Takes digits as a string.
For each permutation i.@!@#A.], use half the digit length -@-:@# to take non-overlapping infixes -- which slices into 2 halves -- and multiply those halves([:*/".\)"1. Check if the input number ". is an element of that list e..
J, 31 bytes
".e.-@-:@#([:*/".\)"1 i.@!@#A.]
Takes digits as a string.
For each permutation i.@!@#A.], use half the digit length -@-:@# to take non-overlapping infixes -- which slices into 2 halves -- and multiply those halves([:*/".\)"1. Check if the input number ". is an element of that list e..
J, 46 bytes
".e.-@-:@#([:((0<[:+/10&|)**/)".\)"1 i.@!@#A.]
Takes digits as a string.
For each permutation i.@!@#A.], use half the digit length -@-:@# to take non-overlapping infixes -- which slices into 2 halves -- and multiply those halves([:*/".\)"1. Check if the input number ". is an element of that list e..